
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void tables_generate(void)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  void *pvVar4;
  int iVar5;
  size_t sVar6;
  uint uVar7;
  
  puVar2 = PTR_nvectors_0008da54;
  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;
  iVar5 = *(int *)PTR_nvars_0008d808;
  iVar3 = *(int *)PTR_nstates_0008d698;
  *(int *)PTR_nvectors_0008da54 = iVar3 + iVar5;
  pvVar4 = xcalloc(iVar3 + iVar5,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(puVar1 + -0x18d8) = pvVar4;
  pvVar4 = xcalloc(sVar6,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(puVar1 + -0x18dc) = pvVar4;
  pvVar4 = xcalloc(sVar6,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(puVar1 + -0x18e0) = pvVar4;
  pvVar4 = xcalloc(sVar6,4);
  uVar7 = *(uint *)puVar2;
  sVar6 = uVar7 << 2;
  *(void **)(puVar1 + -0x18e4) = pvVar4;
  if ((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)) {
                    /* WARNING: Subroutine does not return */
    xmalloc(sVar6);
  }
                    /* WARNING: Subroutine does not return */
  xalloc_die();
}



void tables_generate(void)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  undefined *puVar9;
  undefined *puVar10;
  undefined *puVar11;
  undefined *puVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined *puVar15;
  undefined *puVar16;
  int iVar17;
  undefined4 uVar18;
  code *pcVar19;
  int *piVar20;
  int *piVar21;
  undefined4 *puVar22;
  undefined *puVar23;
  int iVar24;
  uint *puVar25;
  int *piVar26;
  undefined4 uVar27;
  uint uVar28;
  uint *puVar29;
  undefined4 *puVar30;
  int iVar31;
  int *piVar32;
  int iVar33;
  int *piVar34;
  uint uVar35;
  int iVar36;
  uint uVar37;
  int iVar38;
  char cVar39;
  int iVar40;
  int iVar41;
  undefined4 *puVar42;
  undefined4 *puVar43;
  undefined4 *puVar44;
  uint uVar45;
  undefined4 *puVar46;
  int iVar47;
  int iVar48;
  int *local_6c;
  undefined4 *local_64;
  
  puVar13 = PTR_nvectors_0008da54;
  puVar6 = PTR_nvars_0008d808;
  puVar9 = PTR_nstates_0008d698;
  puVar2 = PTR_DAT_0008d618;
  iVar24 = *(int *)PTR_nvars_0008d808;
  iVar17 = *(int *)PTR_nstates_0008d698;
  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;
  uVar18 = xcalloc(iVar17 + iVar24,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar28 = *(uint *)puVar13;
  puVar29 = (uint *)(uVar28 << 2);
  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;
  puVar15 = PTR_nondeterministic_parser_0008da74;
  puVar3 = PTR_DAT_0008d618;
  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
    uVar18 = xmalloc();
    cVar39 = *puVar15;
    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;
    iVar17 = 0;
    if (cVar39 != '\0') {
      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();
    }
    puVar7 = PTR_yydefact_0008d968;
    puVar10 = PTR_ntokens_0008d77c;
    puVar29 = (uint *)(*(uint *)puVar9 << 2);
    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {
      uVar18 = xmalloc();
      uVar28 = *(uint *)puVar10;
      *(undefined4 *)puVar7 = uVar18;
      puVar4 = PTR_DAT_0008d618;
      puVar29 = (uint *)(uVar28 << 2);
      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
        uVar18 = xmalloc();
        uVar28 = *(uint *)puVar10;
        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;
        puVar5 = PTR_DAT_0008d618;
        puVar29 = (uint *)(uVar28 << 2);
        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
          uVar18 = xmalloc();
          uVar28 = iVar17 * 2 + 1;
          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;
          puVar29 = (uint *)(uVar28 * 4);
          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
            uVar18 = xmalloc();
            cVar39 = *puVar15;
            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;
            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;
            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;
            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {
              iVar17 = *(int *)PTR_rules_0008d784;
              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;
              do {
                *(undefined1 *)(iVar17 + 0x38) = 0;
                iVar17 = iVar17 + 0x60;
              } while (iVar24 != iVar17);
            }
            puVar12 = PTR_states_0008d7f8;
            puVar11 = PTR_rules_0008d784;
            if (0 < *(int *)puVar9) {
              iVar17 = 0;
              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);
              do {
                iVar47 = iVar17 * 4;
                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));
                if (iVar24 == 0) {
                  iVar24 = 0;
                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;
                  iVar38 = *(int *)puVar10;
                  puVar25 = *(uint **)(puVar4 + -0x18ec);
                  if (iVar38 < 1) goto LAB_0005508c;
LAB_00054494:
                  uVar28 = 0;
                  puVar29 = puVar25;
                  do {
                    if (*puVar29 != 0) {
                      uVar28 = uVar28 + 1;
                    }
                    puVar29 = puVar29 + 1;
                  } while (puVar25 + iVar38 != puVar29);
                  if (uVar28 == 0) {
                    if (*puVar15 == '\0') goto LAB_00054984;
                  }
                  else {
                    iVar24 = uVar28 << 2;
                    iVar38 = *(int *)(puVar2 + -0x18d8);
                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;
                    piVar20 = (int *)xmalloc(iVar24);
                    *(int **)(iVar38 + iVar47) = piVar20;
                    iVar38 = *(int *)(puVar2 + -0x18dc);
                    piVar21 = (int *)xmalloc(iVar24);
                    cVar39 = *puVar15;
                    *(int **)(iVar38 + iVar47) = piVar21;
                    if (cVar39 == '\0') {
                      puVar22 = (undefined4 *)0x0;
                      cVar39 = '\0';
                    }
                    else {
                      puVar22 = (undefined4 *)xmalloc(iVar24);
                      cVar39 = *puVar15;
                    }
                    iVar24 = *(int *)puVar10;
                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;
                    if (0 < iVar24) {
                      piVar26 = *(int **)(puVar4 + -0x18ec);
                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);
                      iVar38 = 0;
LAB_000545c4:
                      do {
                        puVar46 = puVar22;
                        if (*piVar26 != 0) {
                          *piVar20 = iVar38;
                          piVar20 = piVar20 + 1;
                          *piVar21 = *piVar26;
                          if (cVar39 == '\0') {
                            iVar38 = iVar38 + 1;
                            piVar26 = piVar26 + 1;
                            puVar30 = puVar30 + 1;
                            piVar21 = piVar21 + 1;
                            if (iVar38 == iVar24) break;
                            goto LAB_000545c4;
                          }
                          puVar46 = puVar22 + 1;
                          *puVar22 = *puVar30;
                          piVar21 = piVar21 + 1;
                        }
                        iVar38 = iVar38 + 1;
                        piVar26 = piVar26 + 1;
                        puVar30 = puVar30 + 1;
                        puVar22 = puVar46;
                      } while (iVar38 != iVar24);
                    }
                    iVar24 = *(int *)(puVar3 + -0x18e8);
                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);
                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;
                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;
                    if (cVar39 == '\0') {
                      iVar38 = *(int *)puVar10;
                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);
                      if (iVar38 < 1) goto LAB_000549cc;
                      puVar25 = *(uint **)(puVar4 + -0x18ec);
LAB_00054984:
                      iVar47 = 0;
                      iVar40 = *(int *)puVar11;
                      do {
                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {
                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;
                        }
                        iVar47 = iVar47 + 1;
                        puVar25 = puVar25 + 1;
                      } while (iVar47 < iVar38);
                      goto LAB_000549cc;
                    }
                  }
                }
                else {
                  iVar24 = *(int *)(iVar24 + 4) + 1;
                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;
                  iVar38 = *(int *)puVar10;
                  if (0 < iVar38) {
                    puVar25 = *(uint **)(puVar4 + -0x18ec);
                    goto LAB_00054494;
                  }
LAB_0005508c:
                  if (*puVar15 != '\0') goto LAB_00054640;
LAB_000549cc:
                  if (iVar24 != 0) {
                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;
                  }
                }
LAB_00054640:
                iVar17 = iVar17 + 1;
              } while (iVar17 < *(int *)puVar9);
            }
            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));
            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));
            puVar29 = (uint *)(*(uint *)puVar9 << 2);
            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {
              puVar25 = (uint *)xmalloc();
              puVar4 = PTR_yydefgoto_0008da4c;
              puVar7 = PTR_nsyms_0008d7bc;
              puVar29 = (uint *)(*(uint *)puVar6 << 2);
              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {
                uVar18 = xmalloc();
                iVar24 = *(int *)puVar10;
                iVar17 = *(int *)puVar7;
                *(undefined4 *)puVar4 = uVar18;
                puVar11 = PTR_to_state_0008d978;
                puVar5 = PTR_from_state_0008d974;
                puVar6 = PTR_goto_map_0008d970;
                if (iVar24 < iVar17) {
                  iVar47 = *(int *)PTR_goto_map_0008d970;
                  iVar17 = iVar24;
                  do {
                    iVar38 = (iVar17 - iVar24) * 4;
                    uVar28 = *(uint *)(iVar47 + iVar38);
                    uVar45 = ((uint *)(iVar47 + iVar38))[1];
                    if (uVar28 == uVar45) {
LAB_00055468:
                      iVar33 = -1;
LAB_0005494c:
                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;
                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;
                    }
                    else {
                      iVar40 = *(int *)puVar9;
                      if (iVar40 < 1) {
                        if (uVar45 <= uVar28) goto LAB_00055468;
LAB_00054758:
                        iVar31 = *(int *)puVar11;
                        iVar36 = uVar28 * 4;
                        piVar21 = (int *)(iVar31 + iVar36);
                        do {
                          iVar33 = *piVar21;
                          piVar21 = piVar21 + 1;
                          puVar25[iVar33] = puVar25[iVar33] + 1;
                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);
                        iVar33 = -1;
                        if (0 < iVar40) goto LAB_00054798;
                      }
                      else {
                        puVar29 = puVar25;
                        do {
                          *puVar29 = 0;
                          puVar29 = puVar29 + 1;
                        } while (puVar25 + iVar40 != puVar29);
                        if (uVar28 < uVar45) goto LAB_00054758;
LAB_00054798:
                        iVar31 = 0;
                        iVar33 = -1;
                        uVar35 = 0;
                        puVar29 = puVar25;
                        do {
                          uVar37 = *puVar29;
                          puVar29 = puVar29 + 1;
                          if (uVar35 < uVar37) {
                            iVar33 = iVar31;
                          }
                          iVar31 = iVar31 + 1;
                          if (uVar35 < uVar37) {
                            uVar35 = uVar37;
                          }
                        } while (iVar31 < iVar40);
                        if (uVar45 <= uVar28) goto LAB_0005494c;
                        iVar31 = *(int *)puVar11;
                        iVar36 = uVar28 << 2;
                      }
                      piVar21 = (int *)(iVar31 + iVar36);
                      uVar37 = 0;
                      uVar35 = uVar28;
                      do {
                        if (*piVar21 != iVar33) {
                          uVar37 = uVar37 + 1;
                        }
                        uVar35 = uVar35 + 1;
                        piVar21 = piVar21 + 1;
                      } while (uVar35 < uVar45);
                      if (uVar37 != 0) {
                        iVar47 = uVar37 << 2;
                        iVar38 = *(int *)(puVar2 + -0x18d8);
                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;
                        puVar29 = (uint *)puVar2;
                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {
                          puVar22 = (undefined4 *)xmalloc(iVar47);
                          iVar40 = *(int *)(puVar2 + -0x18dc);
                          *(undefined4 **)(iVar38 + iVar24) = puVar22;
                          piVar21 = (int *)xmalloc(iVar47);
                          *(int **)(iVar40 + iVar24) = piVar21;
                          piVar20 = (int *)(*(int *)puVar11 + iVar36);
                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);
                          do {
                            piVar26 = piVar21;
                            puVar46 = puVar22;
                            if (*piVar20 != iVar33) {
                              puVar46 = puVar22 + 1;
                              piVar26 = piVar21 + 1;
                              *puVar22 = *puVar30;
                              *piVar21 = *piVar20;
                            }
                            uVar28 = uVar28 + 1;
                            piVar20 = piVar20 + 1;
                            puVar30 = puVar30 + 1;
                            piVar21 = piVar26;
                            puVar22 = puVar46;
                          } while (uVar28 < uVar45);
                          iVar47 = *(int *)puVar6;
                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);
                          iVar38 = *(int *)(puVar3 + -0x18e8);
                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;
                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;
                          iVar38 = (iVar17 - *(int *)puVar10) * 4;
                          goto LAB_0005494c;
                        }
                        goto LAB_000554fc;
                      }
                      iVar47 = *(int *)puVar6;
                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;
                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;
                    }
                    iVar17 = iVar17 + 1;
                    iVar24 = *(int *)puVar10;
                  } while( true );
                }
                iVar47 = *(int *)PTR_goto_map_0008d970;
LAB_00054a2c:
                puVar6 = PTR_DAT_0008d618;
                (*(code *)PTR_free_0008df9c)(puVar25);
                (*(code *)PTR_free_0008df9c)(iVar47);
                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);
                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);
                iVar17 = xcalloc(*(undefined4 *)puVar13,4);
                uVar28 = *(uint *)puVar13;
                *(int *)(puVar6 + -0x18f0) = iVar17;
                *(undefined4 *)(puVar6 + -0x18f4) = 0;
                if (0 < (int)uVar28) {
                  uVar45 = 0;
                  puVar25 = *(uint **)(puVar2 + -0x18e4);
                  iVar47 = *(int *)(puVar3 + -0x18e8);
                  bVar1 = false;
                  iVar24 = 0;
                  puVar29 = puVar25;
                  do {
                    while( true ) {
                      uVar35 = *puVar29;
                      iVar38 = iVar24 + -1;
                      if (uVar35 == 0) break;
                      iVar40 = *(int *)(iVar47 + uVar45 * 4);
                      if (iVar38 != -1) {
                        iVar48 = iVar38 * 4;
                        iVar36 = *(int *)(iVar17 + iVar48);
                        iVar31 = *(int *)(iVar47 + iVar36 * 4);
                        iVar33 = iVar38;
                        if (iVar31 < iVar40) {
                          iVar31 = iVar17 + iVar48 + 4;
                          do {
                            iVar33 = iVar33 + -1;
                            if (iVar33 == -1) {
                              iVar31 = -1;
                              goto LAB_00054b68;
                            }
                            piVar21 = (int *)(iVar31 + -8);
                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);
                            iVar31 = iVar31 + -4;
                          } while (iVar41 < iVar40);
                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;
                        }
                        else {
                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;
LAB_00055404:
                          iVar41 = iVar17 + iVar33 * 4;
                          do {
                            iVar33 = iVar33 + -1;
                            iVar31 = iVar33;
                            if (iVar33 == -1) goto LAB_00054b68;
                            piVar21 = (int *)(iVar41 + -4);
                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&
                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));
                        }
                        bVar1 = iVar33 < iVar38;
                        iVar31 = iVar33;
                        iVar38 = iVar33;
                        if (bVar1) {
LAB_00054b68:
                          piVar21 = (int *)(iVar17 + iVar48 + 4);
                          while( true ) {
                            *piVar21 = iVar36;
                            iVar38 = iVar31;
                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;
                            iVar36 = piVar21[-2];
                            piVar21 = piVar21 + -1;
                          }
                        }
                      }
LAB_00054b90:
                      iVar24 = iVar24 + 1;
                      bVar1 = true;
                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;
                      uVar45 = uVar45 + 1;
                      puVar29 = puVar29 + 1;
                      if (uVar45 == uVar28) goto LAB_00054bb0;
                    }
                    uVar45 = uVar45 + 1;
                    puVar29 = puVar29 + 1;
                  } while (uVar45 != uVar28);
LAB_00054bb0:
                  if (bVar1) {
                    *(int *)(puVar6 + -0x18f4) = iVar24;
                  }
                }
                puVar10 = PTR_base_0008da48;
                puVar29 = (uint *)(uVar28 << 2);
                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
                  uVar18 = xmalloc();
                  *(undefined4 *)puVar10 = uVar18;
                  puVar4 = PTR_table_0008da58;
                  puVar7 = PTR_DAT_0008d618;
                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);
                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {
                    uVar18 = xmalloc();
                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;
                    puVar14 = PTR_conflict_table_0008da64;
                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);
                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);
                    *(undefined4 *)puVar4 = uVar18;
                    uVar18 = xcalloc(uVar27,4);
                    uVar28 = *(uint *)(puVar7 + -0x2e50);
                    *(undefined4 *)puVar14 = uVar18;
                    puVar12 = PTR_check_0008da60;
                    puVar11 = PTR_high_0008da44;
                    puVar5 = PTR_DAT_0008d618;
                    puVar29 = (uint *)(uVar28 << 2);
                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
                      puVar22 = (undefined4 *)xmalloc();
                      *(undefined4 *)(puVar5 + -0x1904) = 0;
                      *(undefined4 **)puVar12 = puVar22;
                      *(undefined4 *)puVar11 = 0;
                      if (0 < *(int *)puVar13) {
                        iVar17 = 0;
                        puVar30 = *(undefined4 **)puVar10;
                        do {
                          iVar17 = iVar17 + 1;
                          *puVar30 = 0x80000000;
                          puVar30 = puVar30 + 1;
                        } while (iVar17 < *(int *)puVar13);
                      }
                      if (0 < *(int *)(puVar7 + -0x2e50)) {
                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);
                        do {
                          *puVar22 = 0xffffffff;
                          puVar22 = puVar22 + 1;
                        } while (puVar30 != puVar22);
                      }
                      puVar8 = PTR_trace_flag_0008d64c;
                      iVar24 = 0;
                      local_6c = *(int **)(puVar6 + -0x18f0);
                      iVar17 = *(int *)(puVar2 + -0x18e4);
                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);
                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);
                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);
                      if (*(int *)(puVar6 + -0x18f4) < 1) {
                        iVar47 = *(int *)puVar10;
                        piVar21 = *(int **)(puVar7 + -0x18f8);
LAB_00054f28:
                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);
                        uVar27 = *(undefined4 *)puVar4;
                        iVar24 = *(int *)puVar11;
                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;
                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);
                        puVar2 = PTR_free_0008df9c;
                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;
                        (*(code *)puVar2)(piVar21);
                        (*(code *)PTR_free_0008df9c)(local_6c);
                        (*(code *)PTR_free_0008df9c)(iVar17);
                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));
                        if (0 < *(int *)puVar13) {
                          iVar17 = 0;
                          puVar42 = puVar30;
                          puVar43 = puVar22;
                          puVar44 = puVar46;
                          do {
                            uVar18 = *puVar44;
                            iVar17 = iVar17 + 1;
                            puVar44 = puVar44 + 1;
                            (*(code *)PTR_free_0008df9c)(uVar18);
                            (*(code *)PTR_free_0008df9c)(*puVar43);
                            (*(code *)PTR_free_0008df9c)(*puVar42);
                            puVar42 = puVar42 + 1;
                            puVar43 = puVar43 + 1;
                          } while (iVar17 < *(int *)puVar13);
                        }
                        (*(code *)PTR_free_0008df9c)(puVar46);
                        (*(code *)PTR_free_0008df9c)(puVar22);
                        (*(code *)PTR_free_0008df9c)(puVar30);
                        return;
                      }
                      puVar23 = PTR_DAT_0008d800 + -0x470c;
LAB_00054d58:
                      puVar16 = PTR_stderr_0008dfb4;
                      piVar20 = (int *)((int)local_6c + iVar24 * 4);
                      iVar47 = *piVar20;
                      piVar34 = puVar46 + iVar47;
                      piVar26 = (int *)puVar30[iVar47];
                      piVar21 = puVar22 + iVar47;
                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);
                      if (iVar47 < *(int *)puVar9) {
                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {
                          if (*piVar26 == 0) {
                            uVar45 = 0;
                            piVar32 = piVar26;
                            do {
                              piVar32 = piVar32 + 1;
                              uVar45 = uVar45 + 1;
                              if (uVar45 == uVar28) goto LAB_00054de4;
                            } while (*piVar32 == 0);
                          }
                          local_64 = (undefined4 *)*piVar21;
LAB_000550cc:
                          local_6c = (int *)*piVar34;
                          goto LAB_000550d4;
                        }
LAB_00054de4:
                        iVar38 = iVar24 + -1;
                        if (iVar24 != 0) {
                          iVar33 = piVar20[-1];
                          iVar31 = *(int *)(puVar3 + -0x18e8);
                          iVar40 = iVar33 * 4;
                          iVar47 = *(int *)(iVar31 + iVar47 * 4);
                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&
                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {
                            do {
                              iVar48 = 1;
                              iVar36 = 0;
                              if (uVar28 + 1 == 1) {
LAB_00054edc:
                                if (iVar33 < 0) break;
                                iVar47 = *(int *)puVar10;
                                piVar21 = *(int **)(puVar7 + -0x18f8);
                                iVar38 = *(int *)(iVar47 + iVar40);
                                piVar34 = piVar21 + iVar24;
                                goto LAB_00054f00;
                              }
                              while (((local_64 = (undefined4 *)*piVar21,
                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==
                                      *(int *)((int)local_64 + iVar36) &&
                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==
                                       *(int *)(*piVar34 + iVar36))) &&
                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||
                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))
                              {
                                iVar48 = iVar48 + 1;
                                iVar36 = iVar36 + 4;
                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;
                              }
                              iVar38 = iVar38 + -1;
                              if (iVar38 == -1) goto LAB_000550cc;
                              iVar33 = piVar32[-2];
                              iVar40 = iVar33 * 4;
                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||
                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))
                              goto LAB_000550cc;
                            } while( true );
                          }
                        }
                      }
                      local_6c = (int *)*piVar34;
                      local_64 = (undefined4 *)*piVar21;
                      if (uVar28 == 0) {
                        (*(code *)PTR___assert_fail_0008de30)
                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,
                                   PTR_DAT_0008d800 + -0x46e0);
                        return;
                      }
LAB_000550d4:
                      uVar45 = *(uint *)(puVar7 + -0x2e50);
                      iVar17 = *local_6c;
                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;
                      if ((int)uVar45 <= iVar38) {
LAB_00055518:
                        (*(code *)PTR___assert_fail_0008de30)
                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,
                                   PTR_DAT_0008d800 + -0x46e0);
                        return;
                      }
LAB_00055104:
                      uVar35 = 0;
                      piVar21 = local_6c;
                      do {
                        piVar21 = piVar21 + 1;
                        iVar17 = iVar38 + iVar17;
                        uVar37 = uVar45;
                        if (iVar17 < (int)uVar45) {
LAB_0005511c:
                          iVar33 = *(int *)puVar4;
                          iVar17 = *(int *)(iVar33 + iVar17 * 4);
                        }
                        else {
                          do {
                            uVar37 = uVar37 << 1;
                          } while ((int)uVar37 <= iVar17);
                          *(uint *)(puVar7 + -0x2e50) = uVar37;
                          if ((*(uint *)puVar8 & 4) != 0) {
                            (*(code *)PTR___fprintf_chk_0008de68)
                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);
                            uVar37 = *(uint *)(puVar7 + -0x2e50);
                          }
                          puVar29 = *(uint **)puVar4;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          uVar18 = xrealloc(puVar29);
                          uVar37 = *(uint *)(puVar7 + -0x2e50);
                          *(undefined4 *)puVar4 = uVar18;
                          puVar29 = *(uint **)puVar14;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          uVar18 = xrealloc(puVar29);
                          uVar37 = *(uint *)(puVar7 + -0x2e50);
                          *(undefined4 *)puVar14 = uVar18;
                          puVar29 = *(uint **)puVar12;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          iVar47 = xrealloc();
                          iVar40 = *(int *)(puVar7 + -0x2e50);
                          *(int *)puVar12 = iVar47;
                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;
                          iVar36 = uVar45 << 2;
                          iVar33 = *(int *)puVar4;
                          iVar31 = *(int *)puVar14;
                          do {
                            puVar46 = (undefined4 *)(iVar33 + iVar36);
                            puVar30 = (undefined4 *)(iVar31 + iVar36);
                            puVar22 = (undefined4 *)(iVar47 + iVar36);
                            iVar36 = iVar36 + 4;
                            *puVar46 = 0;
                            *puVar30 = 0;
                            *puVar22 = 0xffffffff;
                          } while (iVar40 << 2 != iVar36);
                          iVar17 = *(int *)(iVar33 + iVar17 * 4);
                        }
                        if (iVar17 != 0) {
                          uVar45 = *(uint *)(puVar7 + -0x2e50);
                          goto LAB_00055138;
                        }
                        uVar35 = uVar35 + 1;
                        if (uVar28 <= uVar35) goto LAB_000552ac;
                        uVar45 = *(uint *)(puVar7 + -0x2e50);
                        iVar17 = *piVar21;
                      } while( true );
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
LAB_000554fc:
                    /* WARNING: Subroutine does not return */
  xalloc_die(puVar29);
LAB_000552ac:
  piVar21 = *(int **)(puVar7 + -0x18f8);
  piVar34 = piVar21 + iVar24;
  if (iVar24 == 0) goto LAB_000552e4;
  bVar1 = true;
  piVar20 = piVar21;
  do {
    iVar17 = *piVar20;
    piVar20 = piVar20 + 1;
    if (iVar17 == iVar38) {
      bVar1 = false;
    }
  } while (piVar34 != piVar20);
  uVar45 = *(uint *)(puVar7 + -0x2e50);
  if (bVar1) goto LAB_000552e4;
LAB_00055138:
  iVar38 = iVar38 + 1;
  if ((int)uVar45 <= iVar38) goto LAB_00055518;
  iVar17 = *local_6c;
  goto LAB_00055104;
LAB_000552e4:
  cVar39 = *puVar15;
  iVar17 = *(int *)puVar14;
  iVar47 = *(int *)puVar12;
  uVar45 = 0;
  do {
    iVar31 = iVar38 + *local_6c;
    iVar40 = iVar31 * 4;
    *(undefined4 *)(iVar33 + iVar40) = *local_64;
    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {
      *(int *)(iVar17 + iVar40) = piVar26[uVar45];
    }
    iVar36 = *local_6c;
    uVar45 = uVar45 + 1;
    local_6c = local_6c + 1;
    *(int *)(iVar47 + iVar40) = iVar36;
    local_64 = local_64 + 1;
  } while (uVar45 < uVar28);
  iVar17 = *(int *)(puVar5 + -0x1904);
  piVar20 = (int *)(iVar33 + iVar17 * 4);
  if (*piVar20 != 0) {
    do {
      iVar17 = iVar17 + 1;
      piVar26 = piVar20 + 1;
      piVar20 = piVar20 + 1;
    } while (*piVar26 != 0);
    *(int *)(puVar5 + -0x1904) = iVar17;
  }
  iVar17 = *(int *)(puVar2 + -0x18e4);
  local_6c = *(int **)(puVar6 + -0x18f0);
  piVar20 = (int *)((int)local_6c + iVar24 * 4);
  iVar47 = *(int *)puVar10;
  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);
  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);
  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);
  if (*(int *)puVar11 < iVar31) {
    *(int *)puVar11 = iVar31;
  }
LAB_00054f00:
  iVar24 = iVar24 + 1;
  *piVar34 = iVar38;
  iVar40 = *(int *)(puVar6 + -0x18f4);
  *(int *)(iVar47 + *piVar20 * 4) = iVar38;
  if (iVar40 <= iVar24) goto LAB_00054f28;
  goto LAB_00054d58;
}


lui gp,0x4
addiu gp,gp,0x13e8
addu gp,gp,t9
lw v0,-0x7f58(gp)
addiu sp,sp,-0xb0
lw v1,-0x7de8(gp)
li a1,0x4
lw a2,-0x7b9c(gp)
lw t9,-0x7e30(gp)
sw v0,0x24(sp)
sw v1,0x5c(sp)
sw s4,0x98(sp)
sw s3,0x94(sp)
sw s2,0x90(sp)
sw s1,0x8c(sp)
sw gp,0x18(sp)
lw v1,0x0(v1)
lw v0,0x0(v0)
lw s1,-0x7fd8(gp)
lw s2,-0x7fd8(gp)
lw s3,-0x7fd8(gp)
addu v0,v0,v1
lw s4,-0x7fd8(gp)
sw ra,0xac(sp)
or a0,v0,zero
sw a2,0x38(sp)
sw s0,0x88(sp)
or s0,a2,zero
sw s8,0xa8(sp)
sw s7,0xa4(sp)
sw s6,0xa0(sp)
sw s5,0x9c(sp)
sw s1,0x34(sp)
sw v0,0x0(a2)
sw s2,0x58(sp)
sw s3,0x74(sp)
bal 0x0006b724
_sw s4,0x54(sp)
li a1,0x4
lw gp,0x18(sp)
lw a0,0x0(s0)
lw t9,-0x7e30(gp)
bal 0x0006b724
_sw v0,-0x18d8(s1)
li a1,0x4
lw gp,0x18(sp)
lw a0,0x0(s0)
lw t9,-0x7e30(gp)
bal 0x0006b724
_sw v0,-0x18dc(s2)
li a1,0x4
lw gp,0x18(sp)
lw a0,0x0(s0)
lw t9,-0x7e30(gp)
bal 0x0006b724
_sw v0,-0x18e0(s3)
lw a0,0x0(s0)
lw gp,0x18(sp)
srl s1,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sw v0,-0x18e4(s4)
sltu s1,zero,s1
bne s1,zero,0x000554fc
_lw s0,-0x7b7c(gp)
lw s2,-0x7fd8(gp)
lw t9,-0x7f54(gp)
sw s0,0x48(sp)
bal 0x0006b410
_sw s2,0x40(sp)
lbu v1,0x0(s0)
lw gp,0x18(sp)
bne v1,zero,0x000554ac
_sw v0,-0x18e8(s2)
lw v0,0x24(sp)
lw a0,0x0(v0)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw s0,-0x7e74(gp)
lw t9,-0x7f54(gp)
lw s3,-0x7c88(gp)
bal 0x0006b410
_nop
lw a0,0x0(s0)
lw gp,0x18(sp)
sw v0,0x0(s3)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw t9,-0x7f54(gp)
lw s2,-0x7fd8(gp)
bal 0x0006b410
_nop
lw a0,0x0(s0)
lw gp,0x18(sp)
sw v0,-0x18ec(s2)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw s4,-0x7fd8(gp)
sll s1,s1,0x1
lw t9,-0x7f54(gp)
bal 0x0006b410
_sw s4,0x4c(sp)
addiu a0,s1,0x1
lw gp,0x18(sp)
srl v1,a0,0x1e
sw v0,-0x18fc(s4)
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v1,zero,v1
bne v1,zero,0x000554fc
_lw t9,-0x7f54(gp)
bal 0x0006b410
_nop
lw gp,0x18(sp)
lw v1,0x48(sp)
lw a0,-0x7b88(gp)
lbu v1,0x0(v1)
sw v0,0x0(a0)
li a0,0x1
lw v0,-0x7fd8(gp)
sw s1,-0x1900(v0)
lw v0,-0x7b84(gp)
beq v1,zero,0x00055470
_sw a0,0x0(v0)
lw v0,0x24(sp)
lw v0,0x0(v0)
blez v0,0x00054654
_lw t9,-0x7654(gp)
lw v0,-0x7e6c(gp)
lui s1,0x7fff
lw s5,-0x796c(gp)
or s8,zero,zero
lw s6,-0x7df8(gp)
ori s1,s1,0xffff
sw v0,0x50(sp)
addiu v0,s5,0x3af0
sw v0,0x28(sp)
lw v0,0x0(s6)
sll s7,s8,0x2
lw t9,0x28(sp)
addu v0,v0,s7
jalr t9
_lw a0,0x0(v0)
beq v0,zero,0x0005506c
_lw gp,0x18(sp)
lw a3,0x4(v0)
lw v0,0x0(s3)
addiu a3,a3,0x1
addu v0,v0,s7
sw a3,0x0(v0)
lw t0,0x0(s0)
blez t0,0x0005508c
_lw v0,0x48(sp)
lw v1,-0x18ec(s2)
sll v0,t0,0x2
or a2,zero,zero
addu v0,v0,v1
or a0,v1,zero
lw a1,0x0(a0)
beq a1,zero,0x000544b4
_nop
addiu a2,a2,0x1
addiu a0,a0,0x4
bne v0,a0,0x000544a4
_nop
beq a2,zero,0x00054974
_lw v0,0x34(sp)
srl s5,a2,0x1e
sll v1,a2,0x2
sw a2,0x3c(sp)
sltu s5,zero,s5
lw a3,-0x18d8(v0)
addu a3,a3,s7
bltz v1,0x000554fc
_sw a3,0x30(sp)
bne s5,zero,0x000554fc
_lw t9,-0x7f54(gp)
or a0,v1,zero
bal 0x0006b410
_sw v1,0x2c(sp)
lw v1,0x2c(sp)
or s4,v0,zero
lw gp,0x18(sp)
lw a3,0x30(sp)
or a0,v1,zero
sw v1,0x44(sp)
lw v1,0x58(sp)
lw t9,-0x7f54(gp)
sw v0,0x0(a3)
lw a1,-0x18dc(v1)
addu a1,a1,s7
bal 0x0006b410
_sw a1,0x2c(sp)
lw v1,0x48(sp)
or a3,v0,zero
lw a1,0x2c(sp)
lw gp,0x18(sp)
lw a2,0x3c(sp)
lbu t0,0x0(v1)
beq t0,zero,0x000550a0
_sw v0,0x0(a1)
lw v1,0x44(sp)
lw t9,-0x7f54(gp)
sw a2,0x2c(sp)
or a0,v1,zero
bal 0x0006b410
_sw v0,0x30(sp)
lw v1,0x48(sp)
lw gp,0x18(sp)
lw a2,0x2c(sp)
lw a3,0x30(sp)
lbu t0,0x0(v1)
lw v1,0x74(sp)
lw t2,0x0(s0)
lw v1,-0x18e0(v1)
addu v1,v1,s7
blez t2,0x000545f8
_sw v0,0x0(v1)
lw a0,0x4c(sp)
lw v1,-0x18ec(s2)
b 0x000545c4
_lw a0,-0x18fc(a0)
lw t1,0x0(a0)
addiu v0,v0,0x4
or a3,a1,zero
sw t1,-0x4(v0)
addiu s5,s5,0x1
addiu v1,v1,0x4
beq s5,t2,0x000545f8
_addiu a0,a0,0x4
lw a1,0x0(v1)
beq a1,zero,0x000545b4
_addiu a1,a3,0x4
sw s5,0x0(s4)
lw t1,0x0(v1)
addiu s4,s4,0x4
bne t0,zero,0x000545a4
_sw t1,0x0(a3)
addiu s5,s5,0x1
or a3,a1,zero
addiu v1,v1,0x4
bne s5,t2,0x000545c4
_addiu a0,a0,0x4
lw v0,0x34(sp)
lw v1,0x40(sp)
lw a0,-0x18d8(v0)
lw v0,0x54(sp)
lw v1,-0x18e8(v1)
addu a0,a0,s7
lw v0,-0x18e4(v0)
addu v1,v1,s7
lw a0,0x0(a0)
addu v0,v0,s7
sw a2,0x0(v0)
lw v0,-0x4(s4)
lw a0,0x0(a0)
subu v0,v0,a0
addiu v0,v0,0x1
beq t0,zero,0x000550a8
_sw v0,0x0(v1)
lw v0,0x24(sp)
addiu s8,s8,0x1
lw v0,0x0(v0)
slt v0,s8,v0
bne v0,zero,0x00054450
_lw t9,-0x7654(gp)
jalr t9
_lw a0,-0x18ec(s2)
lw gp,0x18(sp)
lw v0,0x4c(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,-0x18fc(v0)
lw v0,0x24(sp)
lw gp,0x18(sp)
lw a0,0x0(v0)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw t9,-0x7f54(gp)
bal 0x0006b410
_nop
lw v1,0x5c(sp)
or s6,v0,zero
lw gp,0x18(sp)
lw a0,0x0(v1)
srl s3,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu s3,zero,s3
bne s3,zero,0x000554fc
_sw s3,0x5c(sp)
lw s8,-0x7e34(gp)
lw t9,-0x7f54(gp)
lw s3,-0x7ba4(gp)
bal 0x0006b410
_nop
lw s5,0x0(s0)
lw v1,0x0(s8)
lw gp,0x18(sp)
slt v1,s5,v1
beq v1,zero,0x00055508
_sw v0,0x0(s3)
lw t2,-0x7c80(gp)
or v1,s5,zero
lw s7,-0x7c78(gp)
or t0,s6,zero
lw t3,-0x7c7c(gp)
lw t4,0x0(t2)
or t1,s7,zero
or s7,s5,zero
subu v0,s7,v1
sll v0,v0,0x2
addu a0,t4,v0
lw s1,0x0(a0)
lw s4,0x4(a0)
beq s1,s4,0x00055468
_lw a0,0x24(sp)
lw t5,0x0(a0)
blez t5,0x0005545c
_sll a0,t5,0x2
or a1,t0,zero
addu a0,a0,t0
sw zero,0x0(a1)
addiu a1,a1,0x4
bne a0,a1,0x00054740
_sltu t7,s1,s4
beq t7,zero,0x00054798
_or a0,zero,zero
lw a0,0x0(t1)
sll a3,s1,0x2
sll a2,s4,0x2
addu t6,a0,a3
addu a2,a0,a2
lw a1,0x0(t6)
addiu t6,t6,0x4
sll a1,a1,0x2
addu a1,t0,a1
lw t8,0x0(a1)
addiu t8,t8,0x1
bne a2,t6,0x0005476c
_sw t8,0x0(a1)
blez t5,0x000547d4
_li s2,-0x1
or a0,zero,zero
li s2,-0x1
or a2,zero,zero
or a1,t0,zero
lw a3,0x0(a1)
addiu a1,a1,0x4
sltu t6,a2,a3
movn s2,a0,t6
addiu a0,a0,0x1
slt t8,a0,t5
bne t8,zero,0x000547a4
_movn a2,a3,t6
beq t7,zero,0x0005494c
_nop
lw a0,0x0(t1)
sll a3,s1,0x2
addu a0,a0,a3
or s6,zero,zero
or v0,s1,zero
lw a1,0x0(a0)
beq a1,s2,0x000547f0
_nop
addiu s6,s6,0x1
addiu v0,v0,0x1
sltu a1,v0,s4
bne a1,zero,0x000547e0
_addiu a0,a0,0x4
beq s6,zero,0x000549f8
_lw v0,0x24(sp)
sll a1,s6,0x2
lw a0,0x34(sp)
sw t1,0x50(sp)
sw t0,0x4c(sp)
lw s5,0x0(v0)
srl v0,s6,0x1e
lw a2,-0x18d8(a0)
sw t3,0x44(sp)
sltu v0,zero,v0
addu s5,s7,s5
sw t2,0x3c(sp)
sw a3,0x30(sp)
subu s5,s5,v1
sll s5,s5,0x2
addu a2,a2,s5
bltz a1,0x000554fc
_sw a2,0x2c(sp)
bne v0,zero,0x000554fc
_lw t9,-0x7f54(gp)
or a0,a1,zero
bal 0x0006b410
_sw a1,0x28(sp)
lw v1,0x58(sp)
lw gp,0x18(sp)
lw a2,0x2c(sp)
lw a1,0x28(sp)
lw v1,-0x18dc(v1)
lw t9,-0x7f54(gp)
or a0,a1,zero
sw v0,0x0(a2)
addu v1,v1,s5
sw v0,0x2c(sp)
bal 0x0006b410
_sw v1,0x28(sp)
lw v1,0x28(sp)
lw t1,0x50(sp)
lw t3,0x44(sp)
lw gp,0x18(sp)
lw a3,0x30(sp)
lw t0,0x4c(sp)
lw a1,0x2c(sp)
lw t2,0x3c(sp)
sw v0,0x0(v1)
lw v1,0x0(t1)
lw a0,0x0(t3)
addu v1,v1,a3
addu a3,a0,a3
lw a0,0x0(v1)
beq a0,s2,0x000548e8
_nop
lw a0,0x0(a3)
addiu a1,a1,0x4
addiu v0,v0,0x4
sw a0,-0x4(a1)
lw a0,0x0(v1)
sw a0,-0x4(v0)
addiu s1,s1,0x1
addiu v1,v1,0x4
sltu a0,s1,s4
bne a0,zero,0x000548c4
_addiu a3,a3,0x4
lw v0,0x34(sp)
lw t4,0x0(t2)
lw a0,-0x18d8(v0)
lw v0,0x54(sp)
addu a0,a0,s5
lw v1,-0x18e4(v0)
lw v0,0x40(sp)
lw a0,0x0(a0)
addu v1,v1,s5
lw v0,-0x18e8(v0)
sw s6,0x0(v1)
lw v1,0x0(a0)
addu s5,v0,s5
lw v0,-0x4(a1)
subu v0,v0,v1
addiu v0,v0,0x1
sw v0,0x0(s5)
lw v0,0x0(s0)
subu v0,s7,v0
sll v0,v0,0x2
lw v1,0x0(s3)
addiu s7,s7,0x1
addu v0,v1,v0
sw s2,0x0(v0)
lw v0,0x0(s8)
slt v0,s7,v0
beq v0,zero,0x00054a28
_or s6,t0,zero
b 0x00054710
_lw v1,0x0(s0)
lw v0,0x48(sp)
lbu v0,0x0(v0)
bne v0,zero,0x00054640
_lw v0,0x24(sp)
lw v0,0x50(sp)
or a1,zero,zero
lw a2,0x0(v0)
lw v0,0x0(v1)
addu a0,v0,s1
sltu a0,a0,s1
beq a0,zero,0x000549bc
_nor a0,zero,v0
sll v0,a0,0x1
addu v0,v0,a0
li a0,0x1
sll v0,v0,0x5
addu v0,a2,v0
sb a0,0x38(v0)
addiu a1,a1,0x1
slt v0,a1,t0
bne v0,zero,0x00054990
_addiu v1,v1,0x4
beq a3,zero,0x00054640
_lw v0,0x24(sp)
lw v1,0x50(sp)
sll v0,a3,0x1
addu a3,v0,a3
li v0,0x1
lw v1,0x0(v1)
sll a3,a3,0x5
addu a3,v1,a3
b 0x0005463c
_sb v0,-0x28(a3)
lw v0,0x0(s0)
lw v1,0x0(s3)
lw t4,0x0(t2)
subu v0,s7,v0
addiu s7,s7,0x1
sll v0,v0,0x2
addu v0,v1,v0
sw s2,0x0(v0)
lw v0,0x0(s8)
slt v0,s7,v0
bne v0,zero,0x0005496c
_or s6,t0,zero
or s7,t1,zero
lw s0,-0x7fd8(gp)
or a0,s6,zero
lw s1,-0x7fd8(gp)
lw t9,-0x7654(gp)
sw t4,0x28(sp)
sw s0,0x7c(sp)
jalr t9
_sw s1,0x64(sp)
lw gp,0x18(sp)
lw t4,0x28(sp)
lw t9,-0x7654(gp)
jalr t9
_or a0,t4,zero
lw gp,0x18(sp)
lw v0,-0x7c7c(gp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,0x0(v0)
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,0x0(s7)
li a1,0x4
lw gp,0x18(sp)
lw s2,0x38(sp)
lw t9,-0x7e30(gp)
bal 0x0006b724
_lw a0,0x0(s2)
lw a0,0x0(s2)
lw gp,0x18(sp)
sw v0,-0x18f0(s0)
blez a0,0x00054bc0
_sw zero,-0x18f4(s1)
lw v1,0x54(sp)
or t0,zero,zero
li t7,-0x1
lw t8,0x5c(sp)
addiu s4,v0,0x4
lw s1,-0x18e4(v1)
lw v1,0x40(sp)
or t3,s1,zero
lw t5,-0x18e8(v1)
b 0x00054ae8
_or v1,zero,zero
addiu t0,t0,0x1
beq t0,a0,0x00054bb0
_addiu t3,t3,0x4
lw t1,0x0(t3)
beq t1,zero,0x00054adc
_addiu t6,t8,-0x1
sll v1,t0,0x2
addu v1,t5,v1
or a3,t6,zero
beq t6,t7,0x00054b8c
_lw t2,0x0(v1)
sll t9,t6,0x2
addu v1,v0,t9
lw t4,0x0(v1)
sll v1,t4,0x2
addu a1,t5,v1
lw a1,0x0(a1)
slt a2,a1,t2
beq a2,zero,0x000554c4
_nop
addiu a1,t9,0x4
or v1,t6,zero
b 0x00054b58
_addu ra,v0,a1
lw a2,-0x8(ra)
sll a2,a2,0x2
addu s0,t5,a2
lw s0,0x0(s0)
slt s2,s0,t2
beq s2,zero,0x000553e8
_addiu ra,ra,-0x4
addiu v1,v1,-0x1
bne v1,t7,0x00054b3c
_or a3,v1,zero
li a3,-0x1
sll v1,v1,0x2
addu a1,v0,a1
b 0x00054b7c
_addu v1,s4,v1
lw t4,-0x4(a1)
sw t4,0x0(a1)
addiu a1,a1,-0x4
bne v1,a1,0x00054b78
_nop
addiu a3,a3,0x1
addiu t8,t8,0x1
sll a3,a3,0x2
li v1,0x1
addu a3,v0,a3
sw t0,0x0(a3)
addiu t0,t0,0x1
bne t0,a0,0x00054ae8
_addiu t3,t3,0x4
beq v1,zero,0x00054bc0
_nop
lw v0,0x64(sp)
sw t8,-0x18f4(v0)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw s0,-0x7ba8(gp)
lw t9,-0x7f54(gp)
bal 0x0006b410
_sw s0,0x70(sp)
lw v1,0x64(sp)
lw gp,0x18(sp)
sw v0,0x0(s0)
lw a0,-0x18f4(v1)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw s0,-0x7fd8(gp)
lw t9,-0x7f54(gp)
lw s6,-0x7fd8(gp)
lw s7,-0x7b98(gp)
bal 0x0006b410
_sw s0,0x3c(sp)
li a1,0x4
lw gp,0x18(sp)
lw a0,-0x2e50(s6)
sw v0,-0x18f8(s0)
lw s1,-0x7b8c(gp)
lw t9,-0x7e30(gp)
bal 0x0006b724
_sw s1,0x28(sp)
li a1,0x4
lw gp,0x18(sp)
lw a0,-0x2e50(s6)
lw t9,-0x7e30(gp)
bal 0x0006b724
_sw v0,0x0(s7)
lw a0,-0x2e50(s6)
lw gp,0x18(sp)
sw v0,0x0(s1)
srl v0,a0,0x1e
sll a0,a0,0x2
bltz a0,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_sw v0,0x84(sp)
lw s0,-0x7b90(gp)
lw s1,-0x7fd8(gp)
lw s2,-0x7bac(gp)
lw t9,-0x7f54(gp)
sw s0,0x30(sp)
sw s1,0x78(sp)
bal 0x0006b410
_sw s2,0x80(sp)
lw v1,0x38(sp)
lw gp,0x18(sp)
sw zero,-0x1904(s1)
sw v0,0x0(s0)
sw zero,0x0(s2)
lw v1,0x0(v1)
blez v1,0x00054ce4
_lw v1,0x70(sp)
or a0,zero,zero
lui a2,0x8000
lw a1,0x0(v1)
lw v1,0x38(sp)
addiu a0,a0,0x1
sw a2,0x0(a1)
lw v1,0x0(v1)
slt v1,a0,v1
bne v1,zero,0x00054cc8
_addiu a1,a1,0x4
lw v1,-0x2e50(s6)
blez v1,0x00054d08
_sll v1,v1,0x2
li a0,-0x1
addu v1,v0,v1
sw a0,0x0(v0)
addiu v0,v0,0x4
bne v1,v0,0x00054cf8
_nop
lw v1,0x7c(sp)
or s3,zero,zero
lw v0,0x64(sp)
lw v1,-0x18f0(v1)
lw v0,-0x18f4(v0)
sw v1,0x44(sp)
lw v1,0x54(sp)
lw s0,-0x18e4(v1)
lw v1,0x34(sp)
lw s5,-0x18d8(v1)
lw v1,0x58(sp)
lw s2,-0x18dc(v1)
lw v1,0x74(sp)
blez v0,0x000554e8
_lw s4,-0x18e0(v1)
lw v0,-0x7fa4(gp)
sw v0,0x68(sp)
lw v0,-0x7df0(gp)
addiu v0,v0,-0x470c
sw v0,0x6c(sp)
lw v1,0x24(sp)
sll v0,s3,0x2
sw v0,0x2c(sp)
lw a1,0x0(v1)
lw v1,0x44(sp)
addu a0,v1,v0
or t8,a0,zero
lw v0,0x0(a0)
sll v1,v0,0x2
slt v0,v0,a1
addu a1,s4,v1
addu a2,s0,v1
addu t7,s5,v1
lw a1,0x0(a1)
addu t2,s2,v1
lw s1,0x0(a2)
beq v0,zero,0x0005553c
_sw a1,0x50(sp)
beq a1,zero,0x00054de4
_nop
beq s1,zero,0x00054de4
_nop
lw v0,0x0(a1)
bne v0,zero,0x000550c4
_lw v0,0x50(sp)
addiu a1,v0,0x4
b 0x00054dd4
_or v0,zero,zero
lw a2,-0x4(a1)
bne a2,zero,0x000550c4
_nop
addiu v0,v0,0x1
bne v0,s1,0x00054dc8
_addiu a1,a1,0x4
addiu a1,a1,-0x4
beq s3,zero,0x0005553c
_addiu t0,s3,-0x1
lw v0,0x40(sp)
lw a3,-0x4(a0)
lw t1,-0x18e8(v0)
sll v0,a3,0x2
addu v1,t1,v1
addu a1,t1,v0
lw t6,0x0(v1)
lw v1,0x0(a1)
bne v1,t6,0x0005553c
_addu v1,s0,v0
lw v1,0x0(v1)
bne v1,s1,0x0005553c
_addiu t9,s1,0x1
b 0x00054e58
_li s8,-0x1
addiu t0,t0,-0x1
beq t0,s8,0x000550cc
_nop
lw a3,-0x8(a0)
sll v0,a3,0x2
addu v1,t1,v0
lw v1,0x0(v1)
bne t6,v1,0x000550cc
_addu v1,s0,v0
lw v1,0x0(v1)
bne v1,s1,0x000550cc
_addiu a0,a0,-0x4
li a1,0x1
addu t5,s2,v0
addu t4,s5,v0
or v1,zero,zero
beq t9,a1,0x00054edc
_addu t3,s4,v0
lw a2,0x0(t2)
or ra,a2,zero
sw a2,0x4c(sp)
lw a2,0x0(t5)
addu ra,ra,v1
addu a2,a2,v1
lw ra,0x0(ra)
lw a2,0x0(a2)
bne a2,ra,0x00054e28
_nop
lw ra,0x0(t4)
lw a2,0x0(t7)
addu ra,ra,v1
addu a2,a2,v1
lw ra,0x0(ra)
lw a2,0x0(a2)
bne ra,a2,0x00054e28
_nop
lw a2,0x0(t3)
beq a2,zero,0x00054ed0
_addu a2,a2,v1
lw a2,0x0(a2)
bne a2,zero,0x00054e28
_nop
addiu a1,a1,0x1
bne t9,a1,0x00054e70
_addiu v1,v1,0x4
bltz a3,0x0005553c
_lw v1,0x70(sp)
lw a0,0x0(v1)
lw v1,0x3c(sp)
addu v0,a0,v0
lw t2,-0x18f8(v1)
lw v1,0x2c(sp)
lw s8,0x0(v0)
addu a1,v1,t2
lw v1,0x64(sp)
addiu s3,s3,0x1
sw s8,0x0(a1)
lw v0,0x0(t8)
lw v1,-0x18f4(v1)
sll v0,v0,0x2
addu v0,a0,v0
slt v1,s3,v1
bne v1,zero,0x00054d58
_sw s8,0x0(v0)
lw s1,0x38(sp)
lw t9,-0x796c(gp)
addiu t9,t9,0x41a0
bal 0x000541a0
_lw a1,0x0(s1)
lw gp,0x18(sp)
lw v1,0x80(sp)
lw a0,0x0(s7)
lw a1,0x0(v1)
lw v1,-0x7ba0(gp)
addiu a1,a1,0x1
bal 0x000541a0
_sw v0,0x0(v1)
lw gp,0x18(sp)
or a0,t2,zero
lw v1,-0x7b94(gp)
lw t9,-0x7654(gp)
jalr t9
_sw v0,0x0(v1)
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,0x44(sp)
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw v0,0x40(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,-0x18e8(v0)
lw v0,0x0(s1)
blez v0,0x00055014
_lw gp,0x18(sp)
lw s6,0x84(sp)
or s3,s5,zero
or s1,s2,zero
or s0,s4,zero
lw t9,-0x7654(gp)
addiu s1,s1,0x4
lw a0,0x0(s3)
addiu s0,s0,0x4
addiu s6,s6,0x1
jalr t9
_addiu s3,s3,0x4
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,-0x4(s1)
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_lw a0,-0x4(s0)
lw v0,0x38(sp)
lw v0,0x0(v0)
slt v0,s6,v0
bne v0,zero,0x00054fc4
_lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_or a0,s5,zero
lw gp,0x18(sp)
lw t9,-0x7654(gp)
jalr t9
_or a0,s2,zero
or a0,s4,zero
lw gp,0x18(sp)
lw ra,0xac(sp)
lw s8,0xa8(sp)
lw s7,0xa4(sp)
lw s6,0xa0(sp)
lw s5,0x9c(sp)
lw s4,0x98(sp)
lw s3,0x94(sp)
lw s2,0x90(sp)
lw s1,0x8c(sp)
lw s0,0x88(sp)
lw t9,-0x7654(gp)
jr t9
_addiu sp,sp,0xb0
lw v0,0x0(s3)
or a3,zero,zero
addu v0,v0,s7
sw a3,0x0(v0)
lw t0,0x0(s0)
bgtz t0,0x00054494
_lw v1,-0x18ec(s2)
lw v0,0x48(sp)
lbu v0,0x0(v0)
bne v0,zero,0x00054640
_lw v0,0x24(sp)
b 0x000549cc
_nop
b 0x0005457c
_or v0,zero,zero
lw v0,0x0(s3)
lw t0,0x0(s0)
addu s7,v0,s7
blez t0,0x000549cc
_lw a3,0x0(s7)
b 0x00054984
_lw v1,-0x18ec(s2)
lw v0,0x0(t2)
sw v0,0x4c(sp)
lw v0,0x0(t7)
sw v0,0x44(sp)
lw v0,0x78(sp)
lw v1,0x44(sp)
lw s5,-0x2e50(s6)
lw t0,-0x1904(v0)
lw s0,0x0(v1)
subu s8,t0,s0
slt v0,s8,s5
beq v0,zero,0x00055518
_lw v0,-0x763c(gp)
sw v0,0x60(sp)
addiu v0,v1,0x4
sw v0,0x5c(sp)
lw s4,0x5c(sp)
or s2,zero,zero
addu s0,s8,s0
slt v0,s0,s5
beq v0,zero,0x00055150
_or v0,s5,zero
lw a0,0x0(s7)
sll s0,s0,0x2
addu s0,a0,s0
lw v0,0x0(s0)
beq v0,zero,0x00055268
_nop
lw s5,-0x2e50(s6)
addiu s8,s8,0x1
slt v0,s8,s5
beq v0,zero,0x00055518
_lw v0,0x44(sp)
b 0x00055104
_lw s0,0x0(v0)
sll v0,v0,0x1
slt v1,s0,v0
beq v1,zero,0x00055150
_lw v1,0x68(sp)
sw v0,-0x2e50(s6)
lw v1,0x0(v1)
andi v1,v1,0x4
bne v1,zero,0x00055284
_lw v1,0x60(sp)
srl v1,v0,0x1e
lw a0,0x0(s7)
sll a1,v0,0x2
bltz a1,0x000554fc
_sltu v0,zero,v1
bne v0,zero,0x000554fc
_lw t9,-0x7d68(gp)
bal 0x0006b4cc
_nop
lw a1,-0x2e50(s6)
lw v1,0x28(sp)
lw gp,0x18(sp)
sw v0,0x0(s7)
srl v0,a1,0x1e
sll a1,a1,0x2
lw a0,0x0(v1)
bltz a1,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw t9,-0x7d68(gp)
bal 0x0006b4cc
_nop
lw v1,0x28(sp)
lw a1,-0x2e50(s6)
lw a0,0x30(sp)
lw gp,0x18(sp)
sw v0,0x0(v1)
srl v0,a1,0x1e
sll a1,a1,0x2
lw a0,0x0(a0)
bltz a1,0x000554fc
_sltu v0,zero,v0
bne v0,zero,0x000554fc
_lw t9,-0x7d68(gp)
bal 0x0006b4cc
_nop
lw a0,0x30(sp)
lw v1,-0x2e50(s6)
lw gp,0x18(sp)
sw v0,0x0(a0)
slt a0,s5,v1
beq a0,zero,0x0005511c
_lw a1,0x28(sp)
sll s5,s5,0x2
lw a0,0x0(s7)
sll v1,v1,0x2
lw a2,0x0(a1)
li a1,-0x1
addu t1,a0,s5
addu t0,a2,s5
addu a3,v0,s5
addiu s5,s5,0x4
sw zero,0x0(t1)
sw zero,0x0(t0)
bne v1,s5,0x00055234
_sw a1,0x0(a3)
sll s0,s0,0x2
addu s0,a0,s0
lw v0,0x0(s0)
bne v0,zero,0x00055134
_nop
addiu s2,s2,0x1
sltu v1,s2,s1
beq v1,zero,0x000552ac
_addiu s4,s4,0x4
lw s5,-0x2e50(s6)
b 0x0005510c
_lw s0,-0x4(s4)
li a1,0x1
lw t9,-0x7788(gp)
or a3,s5,zero
lw a2,0x6c(sp)
lw a0,0x0(v1)
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
b 0x00055174
_lw v0,-0x2e50(s6)
lw v1,0x3c(sp)
lw t2,-0x18f8(v1)
lw v1,0x2c(sp)
beq s3,zero,0x000552e4
_addu a1,v1,t2
li a3,0x1
or v1,t2,zero
lw a2,0x0(v1)
addiu v1,v1,0x4
xor a2,a2,s8
bne a1,v1,0x000552c8
_movz a3,zero,a2
beq a3,zero,0x00055138
_lw s5,-0x2e50(s6)
lw v1,0x48(sp)
lw s5,0x44(sp)
lw a3,0x4c(sp)
lw t3,0x50(sp)
lbu t4,0x0(v1)
lw v1,0x28(sp)
lw t5,0x0(v1)
lw v1,0x30(sp)
lw t6,0x0(v1)
lw a2,0x0(s5)
lw t1,0x0(a3)
addu a2,s8,a2
sll v1,a2,0x2
addu t0,a0,v1
beq t4,zero,0x0005533c
_sw t1,0x0(t0)
beq t3,zero,0x0005533c
_sll t0,v0,0x2
addu t1,t5,v1
addu t0,t3,t0
lw t0,0x0(t0)
sw t0,0x0(t1)
lw t1,0x0(s5)
addu v1,t6,v1
addiu v0,v0,0x1
addiu s5,s5,0x4
sltu t0,v0,s1
sw t1,0x0(v1)
bne t0,zero,0x00055308
_addiu a3,a3,0x4
lw v0,0x78(sp)
lw v0,-0x1904(v0)
sll v1,v0,0x2
addu a0,a0,v1
lw v1,0x0(a0)
beq v1,zero,0x00055394
_addiu v0,v0,0x1
lw v1,0x4(a0)
or a3,v0,zero
addiu a0,a0,0x4
bne v1,zero,0x00055378
_addiu v0,v0,0x1
lw v0,0x78(sp)
sw a3,-0x1904(v0)
lw t0,0x54(sp)
lw v1,0x7c(sp)
lw a3,0x80(sp)
lw a0,0x70(sp)
lw s0,-0x18e4(t0)
lw v1,-0x18f0(v1)
lw t0,0x2c(sp)
lw v0,0x0(a3)
sw v1,0x44(sp)
addu t8,v1,t0
lw v1,0x34(sp)
slt v0,v0,a2
lw a0,0x0(a0)
lw s5,-0x18d8(v1)
lw v1,0x58(sp)
lw s2,-0x18dc(v1)
lw v1,0x74(sp)
beq v0,zero,0x00054f00
_lw s4,-0x18e0(v1)
b 0x00054f00
_sw a2,0x0(a3)
bne t2,s0,0x00055448
_nop
addu a2,s1,a2
lw a1,0x0(a2)
sltu a1,a1,t1
beq a1,zero,0x00055448
_nop
sll a2,v1,0x2
b 0x00055424
_addu a2,v0,a2
addu a1,s1,a1
lw a1,0x0(a1)
sltu a1,a1,t1
beq a1,zero,0x00055448
_addiu a2,a2,-0x4
addiu v1,v1,-0x1
beq v1,t7,0x00055454
_or a3,v1,zero
lw a1,-0x4(a2)
sll a1,a1,0x2
addu ra,t5,a1
lw ra,0x0(ra)
beq t2,ra,0x00055410
_nop
slt t6,v1,t6
beq t6,zero,0x00054b8c
_nop
b 0x00054b68
_addiu a1,t9,0x4
sltu t7,s1,s4
bne t7,zero,0x00054758
_nop
b 0x0005494c
_li s2,-0x1
lw v0,-0x7e28(gp)
lw v0,0x0(v0)
blez v0,0x0005441c
_sll v1,v0,0x1
addu v1,v1,v0
lw v0,-0x7e6c(gp)
sll v1,v1,0x5
lw v0,0x0(v0)
addu v1,v1,v0
sb zero,0x38(v0)
addiu v0,v0,0x60
bne v1,v0,0x00055494
_nop
b 0x00054420
_lw v0,0x24(sp)
lw t9,-0x790c(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00054330
_or s1,v0,zero
bne t2,a1,0x00054b8c
_nop
addu a1,s1,v1
lw a1,0x0(a1)
sltu a1,a1,t1
bne a1,zero,0x00055404
_or v1,t6,zero
b 0x00054b90
_addiu a3,a3,0x1
lw v0,0x70(sp)
lw a0,0x0(v0)
lw v0,0x3c(sp)
b 0x00054f28
_lw t2,-0x18f8(v0)
lw t9,-0x7eac(gp)
bal 0x0006b830
_nop
lw v0,-0x7c80(gp)
lw s7,-0x7c78(gp)
b 0x00054a2c
_lw t4,0x0(v0)
lw a3,-0x7df0(gp)
li a2,0x28f
lw a1,-0x7df0(gp)
lw a0,-0x7df0(gp)
lw t9,-0x77c0(gp)
addiu a3,a3,-0x46e0
addiu a1,a1,-0x4750
jalr t9
_addiu a0,a0,-0x4720
lw v0,0x0(t7)
sw v0,0x44(sp)
lw v0,0x0(t2)
bne s1,zero,0x000550d4
_sw v0,0x4c(sp)
lw a3,-0x7df0(gp)
li a2,0x28a
lw a1,-0x7df0(gp)
lw a0,-0x7df0(gp)
lw t9,-0x77c0(gp)
addiu a3,a3,-0x46e0
addiu a1,a1,-0x4750
jalr t9
_addiu a0,a0,-0x4728
(translation_unit "void tables_generate(void)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}\n\n" (function_definition "void tables_generate(void)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" primitive_type (function_declarator "tables_generate(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "char cVar39;" primitive_type identifier ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "undefined4 *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "undefined4 *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "undefined4 *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "uint uVar45;" type_identifier identifier ;) (declaration "undefined4 *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "int iVar48;" primitive_type identifier ;) (declaration "int *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (expression_statement "puVar13 = PTR_nvectors_0008da54;" (assignment_expression "puVar13 = PTR_nvectors_0008da54" identifier = identifier) ;) (expression_statement "puVar6 = PTR_nvars_0008d808;" (assignment_expression "puVar6 = PTR_nvars_0008d808" identifier = identifier) ;) (expression_statement "puVar9 = PTR_nstates_0008d698;" (assignment_expression "puVar9 = PTR_nstates_0008d698" identifier = identifier) ;) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)PTR_nvars_0008d808;" (assignment_expression "iVar24 = *(int *)PTR_nvars_0008d808" identifier = (pointer_expression "*(int *)PTR_nvars_0008d808" * (cast_expression "(int *)PTR_nvars_0008d808" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = *(int *)PTR_nstates_0008d698;" (assignment_expression "iVar17 = *(int *)PTR_nstates_0008d698" identifier = (pointer_expression "*(int *)PTR_nstates_0008d698" * (cast_expression "(int *)PTR_nstates_0008d698" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;" (assignment_expression "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24" (pointer_expression "*(int *)PTR_nvectors_0008da54" * (cast_expression "(int *)PTR_nvectors_0008da54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar17 + iVar24" identifier + identifier)) ;) (expression_statement "uVar18 = xcalloc(iVar17 + iVar24,4);" (assignment_expression "uVar18 = xcalloc(iVar17 + iVar24,4)" identifier = (call_expression "xcalloc(iVar17 + iVar24,4)" identifier (argument_list "(iVar17 + iVar24,4)" ( (binary_expression "iVar17 + iVar24" identifier + identifier) , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18d8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18d8) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 *)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18dc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18dc) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 *)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18e0) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e0) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 *)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" identifier = (pointer_expression "*(uint *)puVar13" * (cast_expression "(uint *)puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18e4) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e4) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e4)" * (cast_expression "(undefined4 *)(puVar2 + -0x18e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = PTR_nondeterministic_parser_0008da74;" (assignment_expression "puVar15 = PTR_nondeterministic_parser_0008da74" identifier = identifier) ;) (expression_statement "puVar3 = PTR_DAT_0008d618;" (assignment_expression "puVar3 = PTR_DAT_0008d618" identifier = identifier) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar3 + -0x18e8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar3 + -0x18e8) = uVar18" (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" * (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" if (parenthesized_expression "(cVar39 != '\0')" ( (binary_expression "cVar39 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" { (expression_statement "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();" (assignment_expression "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)()" identifier = (call_expression "(*(code *)PTR_conflicts_total_count_0008dce4)()" (parenthesized_expression "(*(code *)PTR_conflicts_total_count_0008dce4)" ( (pointer_expression "*(code *)PTR_conflicts_total_count_0008dce4" * (cast_expression "(code *)PTR_conflicts_total_count_0008dce4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) })) (expression_statement "puVar7 = PTR_yydefact_0008d968;" (assignment_expression "puVar7 = PTR_yydefact_0008d968" identifier = identifier) ;) (expression_statement "puVar10 = PTR_ntokens_0008d77c;" (assignment_expression "puVar10 = PTR_ntokens_0008d77c" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar9 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar9 << 2)" ( (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar7 = uVar18;" (assignment_expression "*(undefined4 *)puVar7 = uVar18" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar4 = PTR_DAT_0008d618;" (assignment_expression "puVar4 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar4 + -0x18ec) = uVar18;" (assignment_expression "*(undefined4 *)(puVar4 + -0x18ec) = uVar18" (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" * (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = iVar17 * 2 + 1;" (assignment_expression "uVar28 = iVar17 * 2 + 1" identifier = (binary_expression "iVar17 * 2 + 1" (binary_expression "iVar17 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x18fc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar5 + -0x18fc) = uVar18" (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 * 4);" (assignment_expression "puVar29 = (uint *)(uVar28 * 4)" identifier = (cast_expression "(uint *)(uVar28 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 * 4)" ( (binary_expression "uVar28 * 4" identifier * number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18;" (assignment_expression "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18" (pointer_expression "*(undefined4 *)PTR_conflict_list_0008da68" * (cast_expression "(undefined4 *)PTR_conflict_list_0008da68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;" (assignment_expression "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2" (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1900)" * (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1900)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1900)" ( (binary_expression "PTR_DAT_0008d618 + -0x1900" identifier + number_literal) )))) = (binary_expression "iVar17 * 2" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;" (assignment_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1" (pointer_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c" * (cast_expression "(undefined4 *)PTR_conflict_list_cnt_0008da6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" if (parenthesized_expression "((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8))" ( (binary_expression "(cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)" (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < *(int *)PTR_nrules_0008d7c8)" ( (binary_expression "0 < *(int *)PTR_nrules_0008d7c8" number_literal < (pointer_expression "*(int *)PTR_nrules_0008d7c8" * (cast_expression "(int *)PTR_nrules_0008d7c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" { (expression_statement "iVar17 = *(int *)PTR_rules_0008d784;" (assignment_expression "iVar17 = *(int *)PTR_rules_0008d784" identifier = (pointer_expression "*(int *)PTR_rules_0008d784" * (cast_expression "(int *)PTR_rules_0008d784" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;" (assignment_expression "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" identifier = (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60" (pointer_expression "*(int *)PTR_nrules_0008d7c8" * (cast_expression "(int *)PTR_nrules_0008d7c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) + identifier)) ;) (do_statement "do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);" do (compound_statement "{\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              }" { (expression_statement "*(undefined1 *)(iVar17 + 0x38) = 0;" (assignment_expression "*(undefined1 *)(iVar17 + 0x38) = 0" (pointer_expression "*(undefined1 *)(iVar17 + 0x38)" * (cast_expression "(undefined1 *)(iVar17 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = iVar17 + 0x60;" (assignment_expression "iVar17 = iVar17 + 0x60" identifier = (binary_expression "iVar17 + 0x60" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar17)" ( (binary_expression "iVar24 != iVar17" identifier != identifier) )) ;) })) (expression_statement "puVar12 = PTR_states_0008d7f8;" (assignment_expression "puVar12 = PTR_states_0008d7f8" identifier = identifier) ;) (expression_statement "puVar11 = PTR_rules_0008d784;" (assignment_expression "puVar11 = PTR_rules_0008d784" identifier = identifier) ;) (if_statement "if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" if (parenthesized_expression "(0 < *(int *)puVar9)" ( (binary_expression "0 < *(int *)puVar9" number_literal < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);" (assignment_expression "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0)" identifier = (cast_expression "(code *)(PTR_LAB_0008dc84 + 0x3af0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0008dc84 + 0x3af0)" ( (binary_expression "PTR_LAB_0008dc84 + 0x3af0" identifier + number_literal) )))) ;) (do_statement "do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);" do (compound_statement "{\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              }" { (expression_statement "iVar47 = iVar17 * 4;" (assignment_expression "iVar47 = iVar17 * 4" identifier = (binary_expression "iVar17 * 4" identifier * number_literal)) ;) (expression_statement "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));" (assignment_expression "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" identifier = (call_expression "(*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(*(undefined4 *)(*(int *)puVar12 + iVar47))" ( (pointer_expression "*(undefined4 *)(*(int *)puVar12 + iVar47)" * (cast_expression "(undefined4 *)(*(int *)puVar12 + iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar12 + iVar47)" ( (binary_expression "*(int *)puVar12 + iVar47" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) )))) ;) (if_statement "if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0;" (assignment_expression "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0" (pointer_expression "*(undefined4 *)(*(int *)puVar7 + iVar47)" * (cast_expression "(undefined4 *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = number_literal) ;) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (if_statement "if (iVar38 < 1) goto LAB_0005508c;" if (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0005508c;" goto statement_identifier ;)) (labeled_statement "LAB_00054494:\n                  uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);" do (compound_statement "{\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  }" { (if_statement "if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }" if (parenthesized_expression "(*puVar29 != 0)" ( (binary_expression "*puVar29 != 0" (pointer_expression "*puVar29" * identifier) != number_literal) )) (compound_statement "{\n                      uVar28 = uVar28 + 1;\n                    }" { (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 + iVar38 != puVar29)" ( (binary_expression "puVar25 + iVar38 != puVar29" (binary_expression "puVar25 + iVar38" identifier + identifier) != identifier) )) ;) (if_statement "if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }" { (if_statement "if (*puVar15 == '\0') goto LAB_00054984;" if (parenthesized_expression "(*puVar15 == '\0')" ( (binary_expression "*puVar15 == '\0'" (pointer_expression "*puVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00054984;" goto statement_identifier ;)) }) (else_clause "else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" else (compound_statement "{\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" { (expression_statement "iVar24 = uVar28 << 2;" (assignment_expression "iVar24 = uVar28 << 2" identifier = (binary_expression "uVar28 << 2" identifier << number_literal)) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (if_statement "if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;" if (parenthesized_expression "((iVar24 < 0) || (uVar28 >> 0x1e != 0))" ( (binary_expression "(iVar24 < 0) || (uVar28 >> 0x1e != 0)" (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) || (parenthesized_expression "(uVar28 >> 0x1e != 0)" ( (binary_expression "uVar28 >> 0x1e != 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_000554fc;" goto statement_identifier ;)) (expression_statement "piVar20 = (int *)xmalloc(iVar24);" (assignment_expression "piVar20 = (int *)xmalloc(iVar24)" identifier = (cast_expression "(int *)xmalloc(iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar38 + iVar47) = piVar20;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar20" (pointer_expression "*(int **)(iVar38 + iVar47)" * (cast_expression "(int **)(iVar38 + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar47)" ( (binary_expression "iVar38 + iVar47" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18dc)" * (cast_expression "(int *)(puVar2 + -0x18dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "piVar21 = (int *)xmalloc(iVar24);" (assignment_expression "piVar21 = (int *)xmalloc(iVar24)" identifier = (cast_expression "(int *)xmalloc(iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(int **)(iVar38 + iVar47) = piVar21;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar21" (pointer_expression "*(int **)(iVar38 + iVar47)" * (cast_expression "(int **)(iVar38 + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar47)" ( (binary_expression "iVar38 + iVar47" identifier + identifier) )))) = identifier) ;) (if_statement "if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }" { (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar39 = '\0';" (assignment_expression "cVar39 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" else (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" { (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar24);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar24)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;" (assignment_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22" (pointer_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" * (cast_expression "(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e0) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18e0) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e0)" * (cast_expression "(int *)(puVar2 + -0x18e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (if_statement "if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" { (expression_statement "piVar26 = *(int **)(puVar4 + -0x18ec);" (assignment_expression "piVar26 = *(int **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(int **)(puVar4 + -0x18ec)" * (cast_expression "(int **)(puVar4 + -0x18ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar5 + -0x18fc);" (assignment_expression "puVar30 = *(undefined4 **)(puVar5 + -0x18fc)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 **)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" statement_identifier : (do_statement "do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" do (compound_statement "{\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      }" { (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" identifier = identifier) ;) (if_statement "if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" if (parenthesized_expression "(*piVar26 != 0)" ( (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" * identifier) != number_literal) )) (compound_statement "{\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" { (expression_statement "*piVar20 = iVar38;" (assignment_expression "*piVar20 = iVar38" (pointer_expression "*piVar20" * identifier) = identifier) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "*piVar21 = *piVar26;" (assignment_expression "*piVar21 = *piVar26" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar26" * identifier)) ;) (if_statement "if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar38 == iVar24) break;" if (parenthesized_expression "(iVar38 == iVar24)" ( (binary_expression "iVar38 == iVar24" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000545c4;" goto statement_identifier ;) })) (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar30" * identifier)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" identifier = identifier) ;) }) while (parenthesized_expression "(iVar38 != iVar24)" ( (binary_expression "iVar38 != iVar24" identifier != identifier) )) ;)) })) (expression_statement "iVar24 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar24 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" identifier = (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" * (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" * (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar24 + iVar47)" * (cast_expression "(int *)(iVar24 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + iVar47)" ( (binary_expression "iVar24 + iVar47" identifier + identifier) )))) = (binary_expression "(piVar20[-1] - *piVar21) + 1" (parenthesized_expression "(piVar20[-1] - *piVar21)" ( (binary_expression "piVar20[-1] - *piVar21" (subscript_expression "piVar20[-1]" identifier [ number_literal ]) - (pointer_expression "*piVar21" * identifier)) )) + number_literal)) ;) (if_statement "if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" { (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)(*(int *)puVar7 + iVar47);" (assignment_expression "iVar24 = *(int *)(*(int *)puVar7 + iVar47)" identifier = (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" * (cast_expression "(int *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) ))))) ;) (if_statement "if (iVar38 < 1) goto LAB_000549cc;" if (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) (goto_statement "goto LAB_000549cc;" goto statement_identifier ;)) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00054984:\n                      iVar47 = 0;" statement_identifier : (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;)) (expression_statement "iVar40 = *(int *)puVar11;" (assignment_expression "iVar40 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (do_statement "do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);" do (compound_statement "{\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      }" { (if_statement "if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" if (parenthesized_expression "(*puVar25 + 0x7fffffff < 0x7fffffff)" ( (binary_expression "*puVar25 + 0x7fffffff < 0x7fffffff" (binary_expression "*puVar25 + 0x7fffffff" (pointer_expression "*puVar25" * identifier) + number_literal) < number_literal) )) (compound_statement "{\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" { (expression_statement "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;" (assignment_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1" (pointer_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" * (cast_expression "(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + ~*puVar25 * 0x60 + 0x38)" ( (binary_expression "iVar40 + ~*puVar25 * 0x60 + 0x38" (binary_expression "iVar40 + ~*puVar25 * 0x60" identifier + (binary_expression "~*puVar25 * 0x60" (unary_expression "~*puVar25" ~ (pointer_expression "*puVar25" * identifier)) * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "puVar25 = puVar25 + 1;" (assignment_expression "puVar25 = puVar25 + 1" identifier = (binary_expression "puVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar47 < iVar38)" ( (binary_expression "iVar47 < iVar38" identifier < identifier) )) ;) (goto_statement "goto LAB_000549cc;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(iVar24 + 4) + 1;" (assignment_expression "iVar24 = *(int *)(iVar24 + 4) + 1" identifier = (binary_expression "*(int *)(iVar24 + 4) + 1" (pointer_expression "*(int *)(iVar24 + 4)" * (cast_expression "(int *)(iVar24 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(*(int *)puVar7 + iVar47) = iVar24;" (assignment_expression "*(int *)(*(int *)puVar7 + iVar47) = iVar24" (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" * (cast_expression "(int *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = identifier) ;) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" if (parenthesized_expression "(0 < iVar38)" ( (binary_expression "0 < iVar38" number_literal < identifier) )) (compound_statement "{\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" { (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00054494;" goto statement_identifier ;) })) (labeled_statement "LAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;" statement_identifier : (if_statement "if (*puVar15 != '\0') goto LAB_00054640;" if (parenthesized_expression "(*puVar15 != '\0')" ( (binary_expression "*puVar15 != '\0'" (pointer_expression "*puVar15" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00054640;" goto statement_identifier ;))) (labeled_statement "LAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" statement_identifier : (if_statement "if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" { (expression_statement "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;" (assignment_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1" (pointer_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" * (cast_expression "(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" ( (binary_expression "*(int *)puVar11 + iVar24 * 0x60 + -0x28" (binary_expression "*(int *)puVar11 + iVar24 * 0x60" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "iVar24 * 0x60" identifier * number_literal)) + number_literal) )))) = number_literal) ;) }))) }))) (labeled_statement "LAB_00054640:\n                iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar17 < *(int *)puVar9)" ( (binary_expression "iVar17 < *(int *)puVar9" identifier < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar4 + -0x18ec))" ( (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" * (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar5 + -0x18fc))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) )))) ))) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar9 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar9 << 2)" ( (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "puVar25 = (uint *)xmalloc();" (assignment_expression "puVar25 = (uint *)xmalloc()" identifier = (cast_expression "(uint *)xmalloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar4 = PTR_yydefgoto_0008da4c;" (assignment_expression "puVar4 = PTR_yydefgoto_0008da4c" identifier = identifier) ;) (expression_statement "puVar7 = PTR_nsyms_0008d7bc;" (assignment_expression "puVar7 = PTR_nsyms_0008d7bc" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar6 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar6 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar6 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar6 << 2)" ( (binary_expression "*(uint *)puVar6 << 2" (pointer_expression "*(uint *)puVar6" * (cast_expression "(uint *)puVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar6 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar6 >> 0x1e == 0" (binary_expression "*(uint *)puVar6 >> 0x1e" (pointer_expression "*(uint *)puVar6" * (cast_expression "(uint *)puVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = *(int *)puVar7;" (assignment_expression "iVar17 = *(int *)puVar7" identifier = (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar11 = PTR_to_state_0008d978;" (assignment_expression "puVar11 = PTR_to_state_0008d978" identifier = identifier) ;) (expression_statement "puVar5 = PTR_from_state_0008d974;" (assignment_expression "puVar5 = PTR_from_state_0008d974" identifier = identifier) ;) (expression_statement "puVar6 = PTR_goto_map_0008d970;" (assignment_expression "puVar6 = PTR_goto_map_0008d970" identifier = identifier) ;) (if_statement "if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" if (parenthesized_expression "(iVar24 < iVar17)" ( (binary_expression "iVar24 < iVar17" identifier < identifier) )) (compound_statement "{\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" { (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" identifier = (pointer_expression "*(int *)PTR_goto_map_0008d970" * (cast_expression "(int *)PTR_goto_map_0008d970" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = iVar24;" (assignment_expression "iVar17 = iVar24" identifier = identifier) ;) (do_statement "do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );" do (compound_statement "{\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  }" { (expression_statement "iVar38 = (iVar17 - iVar24) * 4;" (assignment_expression "iVar38 = (iVar17 - iVar24) * 4" identifier = (binary_expression "(iVar17 - iVar24) * 4" (parenthesized_expression "(iVar17 - iVar24)" ( (binary_expression "iVar17 - iVar24" identifier - identifier) )) * number_literal)) ;) (expression_statement "uVar28 = *(uint *)(iVar47 + iVar38);" (assignment_expression "uVar28 = *(uint *)(iVar47 + iVar38)" identifier = (pointer_expression "*(uint *)(iVar47 + iVar38)" * (cast_expression "(uint *)(iVar47 + iVar38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar38)" ( (binary_expression "iVar47 + iVar38" identifier + identifier) ))))) ;) (expression_statement "uVar45 = ((uint *)(iVar47 + iVar38))[1];" (assignment_expression "uVar45 = ((uint *)(iVar47 + iVar38))[1]" identifier = (subscript_expression "((uint *)(iVar47 + iVar38))[1]" (parenthesized_expression "((uint *)(iVar47 + iVar38))" ( (cast_expression "(uint *)(iVar47 + iVar38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar38)" ( (binary_expression "iVar47 + iVar38" identifier + identifier) ))) )) [ number_literal ])) ;) (if_statement "if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" if (parenthesized_expression "(uVar28 == uVar45)" ( (binary_expression "uVar28 == uVar45" identifier == identifier) )) (compound_statement "{\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" { (labeled_statement "LAB_00055468:\n                      iVar33 = -1;" statement_identifier : (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;" statement_identifier : (expression_statement "*(int *)(*(int *)puVar4 + iVar38) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + iVar38) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + iVar38)" * (cast_expression "(int *)(*(int *)puVar4 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar4 + iVar38)" ( (binary_expression "*(int *)puVar4 + iVar38" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = identifier) ;)) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" if (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" ( (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) <= (binary_expression "iVar17 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00054a2c;" goto statement_identifier ;)) }) (else_clause "else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" else (compound_statement "{\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" { (expression_statement "iVar40 = *(int *)puVar9;" (assignment_expression "iVar40 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" if (parenthesized_expression "(iVar40 < 1)" ( (binary_expression "iVar40 < 1" identifier < number_literal) )) (compound_statement "{\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }" { (if_statement "if (uVar45 <= uVar28) goto LAB_00055468;" if (parenthesized_expression "(uVar45 <= uVar28)" ( (binary_expression "uVar45 <= uVar28" identifier <= identifier) )) (goto_statement "goto LAB_00055468;" goto statement_identifier ;)) (labeled_statement "LAB_00054758:\n                        iVar31 = *(int *)puVar11;" statement_identifier : (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar36 = uVar28 * 4;" (assignment_expression "iVar36 = uVar28 * 4" identifier = (binary_expression "uVar28 * 4" identifier * number_literal)) ;) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" identifier = (cast_expression "(int *)(iVar31 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (do_statement "do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);" do (compound_statement "{\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        }" { (expression_statement "iVar33 = *piVar21;" (assignment_expression "iVar33 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar25[iVar33] = puVar25[iVar33] + 1;" (assignment_expression "puVar25[iVar33] = puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" identifier [ identifier ]) = (binary_expression "puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" identifier [ identifier ]) + number_literal)) ;) }) while (parenthesized_expression "((int *)(iVar31 + uVar45 * 4) != piVar21)" ( (binary_expression "(int *)(iVar31 + uVar45 * 4) != piVar21" (cast_expression "(int *)(iVar31 + uVar45 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + uVar45 * 4)" ( (binary_expression "iVar31 + uVar45 * 4" identifier + (binary_expression "uVar45 * 4" identifier * number_literal)) ))) != identifier) )) ;) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;) (if_statement "if (0 < iVar40) goto LAB_00054798;" if (parenthesized_expression "(0 < iVar40)" ( (binary_expression "0 < iVar40" number_literal < identifier) )) (goto_statement "goto LAB_00054798;" goto statement_identifier ;)) }) (else_clause "else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" else (compound_statement "{\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" { (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);" do (compound_statement "{\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        }" { (expression_statement "*puVar29 = 0;" (assignment_expression "*puVar29 = 0" (pointer_expression "*puVar29" * identifier) = number_literal) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 + iVar40 != puVar29)" ( (binary_expression "puVar25 + iVar40 != puVar29" (binary_expression "puVar25 + iVar40" identifier + identifier) != identifier) )) ;) (if_statement "if (uVar28 < uVar45) goto LAB_00054758;" if (parenthesized_expression "(uVar28 < uVar45)" ( (binary_expression "uVar28 < uVar45" identifier < identifier) )) (goto_statement "goto LAB_00054758;" goto statement_identifier ;)) (labeled_statement "LAB_00054798:\n                        iVar31 = 0;" statement_identifier : (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;)) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);" do (compound_statement "{\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        }" { (expression_statement "uVar37 = *puVar29;" (assignment_expression "uVar37 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }" if (parenthesized_expression "(uVar35 < uVar37)" ( (binary_expression "uVar35 < uVar37" identifier < identifier) )) (compound_statement "{\n                            iVar33 = iVar31;\n                          }" { (expression_statement "iVar33 = iVar31;" (assignment_expression "iVar33 = iVar31" identifier = identifier) ;) })) (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }" if (parenthesized_expression "(uVar35 < uVar37)" ( (binary_expression "uVar35 < uVar37" identifier < identifier) )) (compound_statement "{\n                            uVar35 = uVar37;\n                          }" { (expression_statement "uVar35 = uVar37;" (assignment_expression "uVar35 = uVar37" identifier = identifier) ;) })) }) while (parenthesized_expression "(iVar31 < iVar40)" ( (binary_expression "iVar31 < iVar40" identifier < identifier) )) ;) (if_statement "if (uVar45 <= uVar28) goto LAB_0005494c;" if (parenthesized_expression "(uVar45 <= uVar28)" ( (binary_expression "uVar45 <= uVar28" identifier <= identifier) )) (goto_statement "goto LAB_0005494c;" goto statement_identifier ;)) (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar36 = uVar28 << 2;" (assignment_expression "iVar36 = uVar28 << 2" identifier = (binary_expression "uVar28 << 2" identifier << number_literal)) ;) }))) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" identifier = (cast_expression "(int *)(iVar31 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = uVar28;" (assignment_expression "uVar35 = uVar28" identifier = identifier) ;) (do_statement "do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);" do (compound_statement "{\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      }" { (if_statement "if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }" if (parenthesized_expression "(*piVar21 != iVar33)" ( (binary_expression "*piVar21 != iVar33" (pointer_expression "*piVar21" * identifier) != identifier) )) (compound_statement "{\n                          uVar37 = uVar37 + 1;\n                        }" { (expression_statement "uVar37 = uVar37 + 1;" (assignment_expression "uVar37 = uVar37 + 1" identifier = (binary_expression "uVar37 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < uVar45)" ( (binary_expression "uVar35 < uVar45" identifier < identifier) )) ;) (if_statement "if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" if (parenthesized_expression "(uVar37 != 0)" ( (binary_expression "uVar37 != 0" identifier != number_literal) )) (compound_statement "{\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" { (expression_statement "iVar47 = uVar37 << 2;" (assignment_expression "iVar47 = uVar37 << 2" identifier = (binary_expression "uVar37 << 2" identifier << number_literal)) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;" (assignment_expression "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4" identifier = (binary_expression "((iVar17 + *(int *)puVar9) - iVar24) * 4" (parenthesized_expression "((iVar17 + *(int *)puVar9) - iVar24)" ( (binary_expression "(iVar17 + *(int *)puVar9) - iVar24" (parenthesized_expression "(iVar17 + *(int *)puVar9)" ( (binary_expression "iVar17 + *(int *)puVar9" identifier + (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) - identifier) )) * number_literal)) ;) (expression_statement "puVar29 = (uint *)puVar2;" (assignment_expression "puVar29 = (uint *)puVar2" identifier = (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" if (parenthesized_expression "((-1 < iVar47) && (uVar37 >> 0x1e == 0))" ( (binary_expression "(-1 < iVar47) && (uVar37 >> 0x1e == 0)" (parenthesized_expression "(-1 < iVar47)" ( (binary_expression "-1 < iVar47" number_literal < identifier) )) && (parenthesized_expression "(uVar37 >> 0x1e == 0)" ( (binary_expression "uVar37 >> 0x1e == 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" { (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar47);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar47)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar47)" identifier (argument_list "(iVar47)" ( identifier ))))) ;) (expression_statement "iVar40 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar40 = *(int *)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18dc)" * (cast_expression "(int *)(puVar2 + -0x18dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar38 + iVar24) = puVar22;" (assignment_expression "*(undefined4 **)(iVar38 + iVar24) = puVar22" (pointer_expression "*(undefined4 **)(iVar38 + iVar24)" * (cast_expression "(undefined4 **)(iVar38 + iVar24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar24)" ( (binary_expression "iVar38 + iVar24" identifier + identifier) )))) = identifier) ;) (expression_statement "piVar21 = (int *)xmalloc(iVar47);" (assignment_expression "piVar21 = (int *)xmalloc(iVar47)" identifier = (cast_expression "(int *)xmalloc(iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar47)" identifier (argument_list "(iVar47)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar40 + iVar24) = piVar21;" (assignment_expression "*(int **)(iVar40 + iVar24) = piVar21" (pointer_expression "*(int **)(iVar40 + iVar24)" * (cast_expression "(int **)(iVar40 + iVar24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar40 + iVar24)" ( (binary_expression "iVar40 + iVar24" identifier + identifier) )))) = identifier) ;) (expression_statement "piVar20 = (int *)(*(int *)puVar11 + iVar36);" (assignment_expression "piVar20 = (int *)(*(int *)puVar11 + iVar36)" identifier = (cast_expression "(int *)(*(int *)puVar11 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar11 + iVar36)" ( (binary_expression "*(int *)puVar11 + iVar36" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36)" identifier = (cast_expression "(undefined4 *)(*(int *)puVar5 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar36)" ( (binary_expression "*(int *)puVar5 + iVar36" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (do_statement "do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);" do (compound_statement "{\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          }" { (expression_statement "piVar26 = piVar21;" (assignment_expression "piVar26 = piVar21" identifier = identifier) ;) (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" identifier = identifier) ;) (if_statement "if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" if (parenthesized_expression "(*piVar20 != iVar33)" ( (binary_expression "*piVar20 != iVar33" (pointer_expression "*piVar20" * identifier) != identifier) )) (compound_statement "{\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" { (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar21 + 1;" (assignment_expression "piVar26 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar30" * identifier)) ;) (expression_statement "*piVar21 = *piVar20;" (assignment_expression "*piVar21 = *piVar20" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar20" * identifier)) ;) })) (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar26;" (assignment_expression "piVar21 = piVar26" identifier = identifier) ;) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" identifier = identifier) ;) }) while (parenthesized_expression "(uVar28 < uVar45)" ( (binary_expression "uVar28 < uVar45" identifier < identifier) )) ;) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" identifier = (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" * (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar24)" ( (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "iVar38 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar38 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" * (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar24)" ( (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar38 + iVar24)" * (cast_expression "(int *)(iVar38 + iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + iVar24)" ( (binary_expression "iVar38 + iVar24" identifier + identifier) )))) = (binary_expression "(puVar46[-1] - *piVar21) + 1" (parenthesized_expression "(puVar46[-1] - *piVar21)" ( (binary_expression "puVar46[-1] - *piVar21" (subscript_expression "puVar46[-1]" identifier [ number_literal ]) - (pointer_expression "*piVar21" * identifier)) )) + number_literal)) ;) (expression_statement "iVar38 = (iVar17 - *(int *)puVar10) * 4;" (assignment_expression "iVar38 = (iVar17 - *(int *)puVar10) * 4" identifier = (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" ( (binary_expression "iVar17 - *(int *)puVar10" identifier - (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) * number_literal)) ;) (goto_statement "goto LAB_0005494c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000554fc;" goto statement_identifier ;) })) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" * (cast_expression "(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" ( (binary_expression "*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" ( (binary_expression "iVar17 - *(int *)puVar10" identifier - (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) * number_literal)) )))) = identifier) ;) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" if (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" ( (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) <= (binary_expression "iVar17 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00054a2c;" goto statement_identifier ;)) }))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" identifier = (pointer_expression "*(int *)PTR_goto_map_0008d970" * (cast_expression "(int *)PTR_goto_map_0008d970" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;" statement_identifier : (expression_statement "puVar6 = PTR_DAT_0008d618;" (assignment_expression "puVar6 = PTR_DAT_0008d618" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar25);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar25)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar25)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar47);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar47)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar47)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_from_state_0008d974)" ( (pointer_expression "*(undefined4 *)PTR_from_state_0008d974" * (cast_expression "(undefined4 *)PTR_from_state_0008d974" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar11)" ( (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "iVar17 = xcalloc(*(undefined4 *)puVar13,4);" (assignment_expression "iVar17 = xcalloc(*(undefined4 *)puVar13,4)" identifier = (call_expression "xcalloc(*(undefined4 *)puVar13,4)" identifier (argument_list "(*(undefined4 *)puVar13,4)" ( (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" identifier = (pointer_expression "*(uint *)puVar13" * (cast_expression "(uint *)puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(puVar6 + -0x18f0) = iVar17;" (assignment_expression "*(int *)(puVar6 + -0x18f0) = iVar17" (pointer_expression "*(int *)(puVar6 + -0x18f0)" * (cast_expression "(int *)(puVar6 + -0x18f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x18f4) = 0;" (assignment_expression "*(undefined4 *)(puVar6 + -0x18f4) = 0" (pointer_expression "*(undefined4 *)(puVar6 + -0x18f4)" * (cast_expression "(undefined4 *)(puVar6 + -0x18f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar28)" ( (binary_expression "0 < (int)uVar28" number_literal < (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "puVar25 = *(uint **)(puVar2 + -0x18e4);" (assignment_expression "puVar25 = *(uint **)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(uint **)(puVar2 + -0x18e4)" * (cast_expression "(uint **)(puVar2 + -0x18e4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "iVar47 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar47 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);" do (compound_statement "{\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" { (expression_statement "uVar35 = *puVar29;" (assignment_expression "uVar35 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) (if_statement "if (uVar35 == 0) break;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar40 = *(int *)(iVar47 + uVar45 * 4);" (assignment_expression "iVar40 = *(int *)(iVar47 + uVar45 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + uVar45 * 4)" * (cast_expression "(int *)(iVar47 + uVar45 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + uVar45 * 4)" ( (binary_expression "iVar47 + uVar45 * 4" identifier + (binary_expression "uVar45 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" if (parenthesized_expression "(iVar38 != -1)" ( (binary_expression "iVar38 != -1" identifier != number_literal) )) (compound_statement "{\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" { (expression_statement "iVar48 = iVar38 * 4;" (assignment_expression "iVar48 = iVar38 * 4" identifier = (binary_expression "iVar38 * 4" identifier * number_literal)) ;) (expression_statement "iVar36 = *(int *)(iVar17 + iVar48);" (assignment_expression "iVar36 = *(int *)(iVar17 + iVar48)" identifier = (pointer_expression "*(int *)(iVar17 + iVar48)" * (cast_expression "(int *)(iVar17 + iVar48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar48)" ( (binary_expression "iVar17 + iVar48" identifier + identifier) ))))) ;) (expression_statement "iVar31 = *(int *)(iVar47 + iVar36 * 4);" (assignment_expression "iVar31 = *(int *)(iVar47 + iVar36 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + iVar36 * 4)" * (cast_expression "(int *)(iVar47 + iVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar36 * 4)" ( (binary_expression "iVar47 + iVar36 * 4" identifier + (binary_expression "iVar36 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar33 = iVar38;" (assignment_expression "iVar33 = iVar38" identifier = identifier) ;) (if_statement "if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" if (parenthesized_expression "(iVar31 < iVar40)" ( (binary_expression "iVar31 < iVar40" identifier < identifier) )) (compound_statement "{\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }" { (expression_statement "iVar31 = iVar17 + iVar48 + 4;" (assignment_expression "iVar31 = iVar17 + iVar48 + 4" identifier = (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);" do (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          }" { (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" identifier = (binary_expression "iVar33 + -1" identifier + number_literal)) ;) (if_statement "if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" if (parenthesized_expression "(iVar33 == -1)" ( (binary_expression "iVar33 == -1" identifier == number_literal) )) (compound_statement "{\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" { (expression_statement "iVar31 = -1;" (assignment_expression "iVar31 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00054b68;" goto statement_identifier ;) })) (expression_statement "piVar21 = (int *)(iVar31 + -8);" (assignment_expression "piVar21 = (int *)(iVar31 + -8)" identifier = (cast_expression "(int *)(iVar31 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + -8)" ( (binary_expression "iVar31 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar41 = *(int *)(iVar47 + *piVar21 * 4);" (assignment_expression "iVar41 = *(int *)(iVar47 + *piVar21 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" * (cast_expression "(int *)(iVar47 + *piVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar21 * 4)" ( (binary_expression "iVar47 + *piVar21 * 4" identifier + (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" * identifier) * number_literal)) ))))) ;) (expression_statement "iVar31 = iVar31 + -4;" (assignment_expression "iVar31 = iVar31 + -4" identifier = (binary_expression "iVar31 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar41 < iVar40)" ( (binary_expression "iVar41 < iVar40" identifier < identifier) )) ;) (if_statement "if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;" if (parenthesized_expression "((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35))" ( (binary_expression "(iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == iVar41)" ( (binary_expression "iVar40 == iVar41" identifier == identifier) )) && (parenthesized_expression "(puVar25[*piVar21] < uVar35)" ( (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" identifier [ (pointer_expression "*piVar21" * identifier) ]) < identifier) ))) )) (goto_statement "goto LAB_00055404;" goto statement_identifier ;)) }) (else_clause "else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" else (compound_statement "{\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" { (if_statement "if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;" if (parenthesized_expression "((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36]))" ( (binary_expression "(iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])" (parenthesized_expression "(iVar40 != iVar31)" ( (binary_expression "iVar40 != iVar31" identifier != identifier) )) || (parenthesized_expression "(uVar35 <= puVar25[iVar36])" ( (binary_expression "uVar35 <= puVar25[iVar36]" identifier <= (subscript_expression "puVar25[iVar36]" identifier [ identifier ])) ))) )) (goto_statement "goto LAB_00054b90;" goto statement_identifier ;)) (labeled_statement "LAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;" statement_identifier : (expression_statement "iVar41 = iVar17 + iVar33 * 4;" (assignment_expression "iVar41 = iVar17 + iVar33 * 4" identifier = (binary_expression "iVar17 + iVar33 * 4" identifier + (binary_expression "iVar33 * 4" identifier * number_literal))) ;)) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));" do (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          }" { (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" identifier = (binary_expression "iVar33 + -1" identifier + number_literal)) ;) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" identifier = identifier) ;) (if_statement "if (iVar33 == -1) goto LAB_00054b68;" if (parenthesized_expression "(iVar33 == -1)" ( (binary_expression "iVar33 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00054b68;" goto statement_identifier ;)) (expression_statement "piVar21 = (int *)(iVar41 + -4);" (assignment_expression "piVar21 = (int *)(iVar41 + -4)" identifier = (cast_expression "(int *)(iVar41 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -4)" ( (binary_expression "iVar41 + -4" identifier + number_literal) )))) ;) }) while (parenthesized_expression "((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35))" ( (binary_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4))" ( (binary_expression "iVar40 == *(int *)(iVar47 + *piVar21 * 4)" identifier == (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" * (cast_expression "(int *)(iVar47 + *piVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar21 * 4)" ( (binary_expression "iVar47 + *piVar21 * 4" identifier + (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" * identifier) * number_literal)) ))))) )) && (parenthesized_expression "(iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" ( (comma_expression "iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35" (assignment_expression "iVar41 = iVar41 + -4" identifier = (binary_expression "iVar41 + -4" identifier + number_literal)) , (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" identifier [ (pointer_expression "*piVar21" * identifier) ]) < identifier)) ))) )) ;) }))) (expression_statement "bVar1 = iVar33 < iVar38;" (assignment_expression "bVar1 = iVar33 < iVar38" identifier = (binary_expression "iVar33 < iVar38" identifier < identifier)) ;) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" identifier = identifier) ;) (expression_statement "iVar38 = iVar33;" (assignment_expression "iVar38 = iVar33" identifier = identifier) ;) (if_statement "if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" { (labeled_statement "LAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);" statement_identifier : (expression_statement "piVar21 = (int *)(iVar17 + iVar48 + 4);" (assignment_expression "piVar21 = (int *)(iVar17 + iVar48 + 4)" identifier = (cast_expression "(int *)(iVar17 + iVar48 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar48 + 4)" ( (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" identifier + identifier) + number_literal) )))) ;)) (while_statement "while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" { (expression_statement "*piVar21 = iVar36;" (assignment_expression "*piVar21 = iVar36" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "iVar38 = iVar31;" (assignment_expression "iVar38 = iVar31" identifier = identifier) ;) (if_statement "if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;" if (parenthesized_expression "((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1)" ( (binary_expression "(int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1" (cast_expression "(int *)(iVar17 + 4 + iVar33 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4 + iVar33 * 4)" ( (binary_expression "iVar17 + 4 + iVar33 * 4" (binary_expression "iVar17 + 4" identifier + number_literal) + (binary_expression "iVar33 * 4" identifier * number_literal)) ))) == (binary_expression "piVar21 + -1" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar36 = piVar21[-2];" (assignment_expression "iVar36 = piVar21[-2]" identifier = (subscript_expression "piVar21[-2]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = piVar21 + -1;" (assignment_expression "piVar21 = piVar21 + -1" identifier = (binary_expression "piVar21 + -1" identifier + number_literal)) ;) })) })) })) (labeled_statement "LAB_00054b90:\n                      iVar24 = iVar24 + 1;" statement_identifier : (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;)) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;" (assignment_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45" (pointer_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4)" * (cast_expression "(uint *)(iVar17 + (iVar38 + 1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (iVar38 + 1) * 4)" ( (binary_expression "iVar17 + (iVar38 + 1) * 4" identifier + (binary_expression "(iVar38 + 1) * 4" (parenthesized_expression "(iVar38 + 1)" ( (binary_expression "iVar38 + 1" identifier + number_literal) )) * number_literal)) )))) = identifier) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar45 == uVar28) goto LAB_00054bb0;" if (parenthesized_expression "(uVar45 == uVar28)" ( (binary_expression "uVar45 == uVar28" identifier == identifier) )) (goto_statement "goto LAB_00054bb0;" goto statement_identifier ;)) })) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 != uVar28)" ( (binary_expression "uVar45 != uVar28" identifier != identifier) )) ;) (labeled_statement "LAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" statement_identifier : (if_statement "if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" { (expression_statement "*(int *)(puVar6 + -0x18f4) = iVar24;" (assignment_expression "*(int *)(puVar6 + -0x18f4) = iVar24" (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "puVar10 = PTR_base_0008da48;" (assignment_expression "puVar10 = PTR_base_0008da48" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)puVar10 = uVar18;" (assignment_expression "*(undefined4 *)puVar10 = uVar18" (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar4 = PTR_table_0008da58;" (assignment_expression "puVar4 = PTR_table_0008da58" identifier = identifier) ;) (expression_statement "puVar7 = PTR_DAT_0008d618;" (assignment_expression "puVar7 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" identifier = (cast_expression "(uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) << 2)" ( (binary_expression "*(uint *)(puVar6 + -0x18f4) << 2" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" * (cast_expression "(uint *)(puVar6 + -0x18f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" ( (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0" (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" * (cast_expression "(uint *)(puVar6 + -0x18f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) >> number_literal) == number_literal) ))) )) (compound_statement "{\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x18f8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar7 + -0x18f8) = uVar18" (pointer_expression "*(undefined4 *)(puVar7 + -0x18f8)" * (cast_expression "(undefined4 *)(puVar7 + -0x18f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14 = PTR_conflict_table_0008da64;" (assignment_expression "puVar14 = PTR_conflict_table_0008da64" identifier = identifier) ;) (expression_statement "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);" (assignment_expression "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" identifier = (call_expression "xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" identifier (argument_list "(*(undefined4 *)(puVar7 + -0x2e50),4)" ( (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" * (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar7 + -0x2e50);" (assignment_expression "uVar27 = *(undefined4 *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" * (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar28 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" * (cast_expression "(undefined4 *)puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar12 = PTR_check_0008da60;" (assignment_expression "puVar12 = PTR_check_0008da60" identifier = identifier) ;) (expression_statement "puVar11 = PTR_high_0008da44;" (assignment_expression "puVar11 = PTR_high_0008da44" identifier = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" { (expression_statement "puVar22 = (undefined4 *)xmalloc();" (assignment_expression "puVar22 = (undefined4 *)xmalloc()" identifier = (cast_expression "(undefined4 *)xmalloc()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x1904) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + -0x1904) = 0" (pointer_expression "*(undefined4 *)(puVar5 + -0x1904)" * (cast_expression "(undefined4 *)(puVar5 + -0x1904)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)puVar12 = puVar22;" (assignment_expression "*(undefined4 **)puVar12 = puVar22" (pointer_expression "*(undefined4 **)puVar12" * (cast_expression "(undefined4 **)puVar12" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" if (parenthesized_expression "(0 < *(int *)puVar13)" ( (binary_expression "0 < *(int *)puVar13" number_literal < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar30 = *(undefined4 **)puVar10;" (assignment_expression "puVar30 = *(undefined4 **)puVar10" identifier = (pointer_expression "*(undefined4 **)puVar10" * (cast_expression "(undefined4 **)puVar10" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (do_statement "do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);" do (compound_statement "{\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "*puVar30 = 0x80000000;" (assignment_expression "*puVar30 = 0x80000000" (pointer_expression "*puVar30" * identifier) = number_literal) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)puVar13)" ( (binary_expression "iVar17 < *(int *)puVar13" identifier < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" if (parenthesized_expression "(0 < *(int *)(puVar7 + -0x2e50))" ( (binary_expression "0 < *(int *)(puVar7 + -0x2e50)" number_literal < (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) )) (compound_statement "{\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" { (expression_statement "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);" (assignment_expression "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50)" identifier = (binary_expression "puVar22 + *(int *)(puVar7 + -0x2e50)" identifier + (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))))) ;) (do_statement "do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);" do (compound_statement "{\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        }" { (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" * identifier) = number_literal) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar30 != puVar22)" ( (binary_expression "puVar30 != puVar22" identifier != identifier) )) ;) })) (expression_statement "puVar8 = PTR_trace_flag_0008d64c;" (assignment_expression "puVar8 = PTR_trace_flag_0008d64c" identifier = identifier) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" identifier = (pointer_expression "*(int **)(puVar6 + -0x18f0)" * (cast_expression "(int **)(puVar6 + -0x18f0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" if (parenthesized_expression "(*(int *)(puVar6 + -0x18f4) < 1)" ( (binary_expression "*(int *)(puVar6 + -0x18f4) < 1" (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" { (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" statement_identifier : (expression_statement "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" (assignment_expression "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13)" identifier = (call_expression "FUN_000541a0(iVar47,*(undefined4 *)puVar13)" identifier (argument_list "(iVar47,*(undefined4 *)puVar13)" ( identifier , (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;)) (expression_statement "uVar27 = *(undefined4 *)puVar4;" (assignment_expression "uVar27 = *(undefined4 *)puVar4" identifier = (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)puVar11;" (assignment_expression "iVar24 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18;" (assignment_expression "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18" (pointer_expression "*(undefined4 *)PTR_base_ninf_0008da50" * (cast_expression "(undefined4 *)PTR_base_ninf_0008da50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar18 = FUN_000541a0(uVar27,iVar24 + 1);" (assignment_expression "uVar18 = FUN_000541a0(uVar27,iVar24 + 1)" identifier = (call_expression "FUN_000541a0(uVar27,iVar24 + 1)" identifier (argument_list "(uVar27,iVar24 + 1)" ( identifier , (binary_expression "iVar24 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar2 = PTR_free_0008df9c;" (assignment_expression "puVar2 = PTR_free_0008df9c" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18;" (assignment_expression "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18" (pointer_expression "*(undefined4 *)PTR_table_ninf_0008da5c" * (cast_expression "(undefined4 *)PTR_table_ninf_0008da5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)puVar2)(piVar21);" (call_expression "(*(code *)puVar2)(piVar21)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar21)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(local_6c);" (call_expression "(*(code *)PTR_free_0008df9c)(local_6c)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar17);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar3 + -0x18e8))" ( (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" * (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" if (parenthesized_expression "(0 < *(int *)puVar13)" ( (binary_expression "0 < *(int *)puVar13" number_literal < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar42 = puVar30;" (assignment_expression "puVar42 = puVar30" identifier = identifier) ;) (expression_statement "puVar43 = puVar22;" (assignment_expression "puVar43 = puVar22" identifier = identifier) ;) (expression_statement "puVar44 = puVar46;" (assignment_expression "puVar44 = puVar46" identifier = identifier) ;) (do_statement "do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);" do (compound_statement "{\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          }" { (expression_statement "uVar18 = *puVar44;" (assignment_expression "uVar18 = *puVar44" identifier = (pointer_expression "*puVar44" * identifier)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar44 = puVar44 + 1;" (assignment_expression "puVar44 = puVar44 + 1" identifier = (binary_expression "puVar44 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(uVar18);" (call_expression "(*(code *)PTR_free_0008df9c)(uVar18)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar18)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar43);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar43)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar43)" ( (pointer_expression "*puVar43" * identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar42);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar42)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar42)" ( (pointer_expression "*puVar42" * identifier) ))) ;) (expression_statement "puVar42 = puVar42 + 1;" (assignment_expression "puVar42 = puVar42 + 1" identifier = (binary_expression "puVar42 + 1" identifier + number_literal)) ;) (expression_statement "puVar43 = puVar43 + 1;" (assignment_expression "puVar43 = puVar43 + 1" identifier = (binary_expression "puVar43 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)puVar13)" ( (binary_expression "iVar17 < *(int *)puVar13" identifier < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar46);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar46)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar46)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar22);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar22)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar30);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar30)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar30)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar23 = PTR_DAT_0008d800 + -0x470c;" (assignment_expression "puVar23 = PTR_DAT_0008d800 + -0x470c" identifier = (binary_expression "PTR_DAT_0008d800 + -0x470c" identifier + number_literal)) ;) (labeled_statement "LAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;" statement_identifier : (expression_statement "puVar16 = PTR_stderr_0008dfb4;" (assignment_expression "puVar16 = PTR_stderr_0008dfb4" identifier = identifier) ;)) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" identifier = (cast_expression "(int *)((int)local_6c + iVar24 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + iVar24 * 4)" ( (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar24 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar47 = *piVar20;" (assignment_expression "iVar47 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar34 = puVar46 + iVar47;" (assignment_expression "piVar34 = puVar46 + iVar47" identifier = (binary_expression "puVar46 + iVar47" identifier + identifier)) ;) (expression_statement "piVar26 = (int *)puVar30[iVar47];" (assignment_expression "piVar26 = (int *)puVar30[iVar47]" identifier = (cast_expression "(int *)puVar30[iVar47]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[iVar47]" identifier [ identifier ]))) ;) (expression_statement "piVar21 = puVar22 + iVar47;" (assignment_expression "piVar21 = puVar22 + iVar47" identifier = (binary_expression "puVar22 + iVar47" identifier + identifier)) ;) (expression_statement "uVar28 = *(uint *)(iVar17 + iVar47 * 4);" (assignment_expression "uVar28 = *(uint *)(iVar17 + iVar47 * 4)" identifier = (pointer_expression "*(uint *)(iVar17 + iVar47 * 4)" * (cast_expression "(uint *)(iVar17 + iVar47 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar47 * 4)" ( (binary_expression "iVar17 + iVar47 * 4" identifier + (binary_expression "iVar47 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" if (parenthesized_expression "(iVar47 < *(int *)puVar9)" ( (binary_expression "iVar47 < *(int *)puVar9" identifier < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" { (if_statement "if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" if (parenthesized_expression "((piVar26 != (int *)0x0) && (uVar28 != 0))" ( (binary_expression "(piVar26 != (int *)0x0) && (uVar28 != 0)" (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" { (if_statement "if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" if (parenthesized_expression "(*piVar26 == 0)" ( (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" * identifier) == number_literal) )) (compound_statement "{\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "piVar32 = piVar26;" (assignment_expression "piVar32 = piVar26" identifier = identifier) ;) (do_statement "do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);" do (compound_statement "{\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            }" { (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (if_statement "if (uVar45 == uVar28) goto LAB_00054de4;" if (parenthesized_expression "(uVar45 == uVar28)" ( (binary_expression "uVar45 == uVar28" identifier == identifier) )) (goto_statement "goto LAB_00054de4;" goto statement_identifier ;)) }) while (parenthesized_expression "(*piVar32 == 0)" ( (binary_expression "*piVar32 == 0" (pointer_expression "*piVar32" * identifier) == number_literal) )) ;) })) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (labeled_statement "LAB_000550cc:\n                          local_6c = (int *)*piVar34;" statement_identifier : (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;)) (goto_statement "goto LAB_000550d4;" goto statement_identifier ;) })) (labeled_statement "LAB_00054de4:\n                        iVar38 = iVar24 + -1;" statement_identifier : (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" { (expression_statement "iVar33 = piVar20[-1];" (assignment_expression "iVar33 = piVar20[-1]" identifier = (subscript_expression "piVar20[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar31 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar31 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" identifier = (binary_expression "iVar33 * 4" identifier * number_literal)) ;) (expression_statement "iVar47 = *(int *)(iVar31 + iVar47 * 4);" (assignment_expression "iVar47 = *(int *)(iVar31 + iVar47 * 4)" identifier = (pointer_expression "*(int *)(iVar31 + iVar47 * 4)" * (cast_expression "(int *)(iVar31 + iVar47 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar47 * 4)" ( (binary_expression "iVar31 + iVar47 * 4" identifier + (binary_expression "iVar47 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" if (parenthesized_expression "((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28))" ( (binary_expression "(*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" (parenthesized_expression "(*(int *)(iVar31 + iVar40) == iVar47)" ( (binary_expression "*(int *)(iVar31 + iVar40) == iVar47" (pointer_expression "*(int *)(iVar31 + iVar40)" * (cast_expression "(int *)(iVar31 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar40)" ( (binary_expression "iVar31 + iVar40" identifier + identifier) )))) == identifier) )) && (parenthesized_expression "(piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" ( (comma_expression "piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28" (assignment_expression "piVar32 = piVar20" identifier = identifier) , (binary_expression "*(uint *)(iVar17 + iVar40) == uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" * (cast_expression "(uint *)(iVar17 + iVar40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) == identifier)) ))) )) (compound_statement "{\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" { (do_statement "do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );" do (compound_statement "{\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            }" { (expression_statement "iVar48 = 1;" (assignment_expression "iVar48 = 1" identifier = number_literal) ;) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (if_statement "if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" if (parenthesized_expression "(uVar28 + 1 == 1)" ( (binary_expression "uVar28 + 1 == 1" (binary_expression "uVar28 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" { (labeled_statement "LAB_00054edc:\n                                if (iVar33 < 0) break;" statement_identifier : (if_statement "if (iVar33 < 0) break;" if (parenthesized_expression "(iVar33 < 0)" ( (binary_expression "iVar33 < 0" identifier < number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = *(int *)(iVar47 + iVar40);" (assignment_expression "iVar38 = *(int *)(iVar47 + iVar40)" identifier = (pointer_expression "*(int *)(iVar47 + iVar40)" * (cast_expression "(int *)(iVar47 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar40)" ( (binary_expression "iVar47 + iVar40" identifier + identifier) ))))) ;) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" identifier = (binary_expression "piVar21 + iVar24" identifier + identifier)) ;) (goto_statement "goto LAB_00054f00;" goto statement_identifier ;) })) (while_statement "while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" while (parenthesized_expression "(((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))" ( (parenthesized_expression "((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))))" ( (binary_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" (parenthesized_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)))" ( (comma_expression "local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) , (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar22 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar22 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar22 + iVar40)" * (cast_expression "(int *)((int)puVar22 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + iVar40)" ( (binary_expression "(int)puVar22 + iVar40" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == (pointer_expression "*(int *)((int)local_64 + iVar36)" * (cast_expression "(int *)((int)local_64 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + iVar36)" ( (binary_expression "(int)local_64 + iVar36" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) && (parenthesized_expression "(*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" ( (binary_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar46 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar46 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar46 + iVar40)" * (cast_expression "(int *)((int)puVar46 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar46 + iVar40)" ( (binary_expression "(int)puVar46 + iVar40" (cast_expression "(int)puVar46" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == (pointer_expression "*(int *)(*piVar34 + iVar36)" * (cast_expression "(int *)(*piVar34 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + iVar36)" ( (binary_expression "*piVar34 + iVar36" (pointer_expression "*piVar34" * identifier) + identifier) ))))) )))) )) && (parenthesized_expression "((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" ( (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))" ( (binary_expression "*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" (binary_expression "*(int *)((int)puVar30 + iVar40) == 0" (pointer_expression "*(int *)((int)puVar30 + iVar40)" * (cast_expression "(int *)((int)puVar30 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + iVar40)" ( (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) || (parenthesized_expression "(*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" ( (binary_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0" (pointer_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar30 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar30 + iVar40)" * (cast_expression "(int *)((int)puVar30 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + iVar40)" ( (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == number_literal) ))) )) ))) )) )) (compound_statement "{\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" { (expression_statement "iVar48 = iVar48 + 1;" (assignment_expression "iVar48 = iVar48 + 1" identifier = (binary_expression "iVar48 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) (if_statement "if (uVar28 + 1 == iVar48) goto LAB_00054edc;" if (parenthesized_expression "(uVar28 + 1 == iVar48)" ( (binary_expression "uVar28 + 1 == iVar48" (binary_expression "uVar28 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00054edc;" goto statement_identifier ;)) })) (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (if_statement "if (iVar38 == -1) goto LAB_000550cc;" if (parenthesized_expression "(iVar38 == -1)" ( (binary_expression "iVar38 == -1" identifier == number_literal) )) (goto_statement "goto LAB_000550cc;" goto statement_identifier ;)) (expression_statement "iVar33 = piVar32[-2];" (assignment_expression "iVar33 = piVar32[-2]" identifier = (subscript_expression "piVar32[-2]" identifier [ number_literal ])) ;) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" identifier = (binary_expression "iVar33 * 4" identifier * number_literal)) ;) (if_statement "if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;" if (parenthesized_expression "((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))" ( (binary_expression "(iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" (parenthesized_expression "(iVar47 != *(int *)(iVar31 + iVar40))" ( (binary_expression "iVar47 != *(int *)(iVar31 + iVar40)" identifier != (pointer_expression "*(int *)(iVar31 + iVar40)" * (cast_expression "(int *)(iVar31 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar40)" ( (binary_expression "iVar31 + iVar40" identifier + identifier) ))))) )) || (parenthesized_expression "(piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" ( (comma_expression "piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28" (assignment_expression "piVar32 = piVar32 + -1" identifier = (binary_expression "piVar32 + -1" identifier + number_literal)) , (binary_expression "*(uint *)(iVar17 + iVar40) != uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" * (cast_expression "(uint *)(iVar17 + iVar40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) != identifier)) ))) )) (goto_statement "goto LAB_000550cc;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (if_statement "if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" { (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" ( (pointer_expression "*(code *)PTR___assert_fail_0008de30" * (cast_expression "(code *)PTR___assert_fail_0008de30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" ( (binary_expression "PTR_DAT_0008d800 + -0x4728" identifier + number_literal) , (binary_expression "PTR_DAT_0008d800 + -0x4750" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0008d800 + -0x46e0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);" statement_identifier : (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;)) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;" (assignment_expression "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17" identifier = (binary_expression "*(int *)(puVar5 + -0x1904) - iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" if (parenthesized_expression "((int)uVar45 <= iVar38)" ( (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" { (labeled_statement "LAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" ( (pointer_expression "*(code *)PTR___assert_fail_0008de30" * (cast_expression "(code *)PTR___assert_fail_0008de30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" ( (binary_expression "PTR_DAT_0008d800 + -0x4720" identifier + number_literal) , (binary_expression "PTR_DAT_0008d800 + -0x4750" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0008d800 + -0x46e0" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (labeled_statement "LAB_00055104:\n                      uVar35 = 0;" statement_identifier : (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;)) (expression_statement "piVar21 = local_6c;" (assignment_expression "piVar21 = local_6c" identifier = identifier) ;) (do_statement "do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );" do (compound_statement "{\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      }" { (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar38 + iVar17;" (assignment_expression "iVar17 = iVar38 + iVar17" identifier = (binary_expression "iVar38 + iVar17" identifier + identifier)) ;) (expression_statement "uVar37 = uVar45;" (assignment_expression "uVar37 = uVar45" identifier = identifier) ;) (if_statement "if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" if (parenthesized_expression "(iVar17 < (int)uVar45)" ( (binary_expression "iVar17 < (int)uVar45" identifier < (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" { (labeled_statement "LAB_0005511c:\n                          iVar33 = *(int *)puVar4;" statement_identifier : (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" identifier = (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" * (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" else (compound_statement "{\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" { (do_statement "do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);" do (compound_statement "{\n                            uVar37 = uVar37 << 1;\n                          }" { (expression_statement "uVar37 = uVar37 << 1;" (assignment_expression "uVar37 = uVar37 << 1" identifier = (binary_expression "uVar37 << 1" identifier << number_literal)) ;) }) while (parenthesized_expression "((int)uVar37 <= iVar17)" ( (binary_expression "(int)uVar37 <= iVar17" (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) ;) (expression_statement "*(uint *)(puVar7 + -0x2e50) = uVar37;" (assignment_expression "*(uint *)(puVar7 + -0x2e50) = uVar37" (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" if (parenthesized_expression "((*(uint *)puVar8 & 4) != 0)" ( (binary_expression "(*(uint *)puVar8 & 4) != 0" (parenthesized_expression "(*(uint *)puVar8 & 4)" ( (binary_expression "*(uint *)puVar8 & 4" (pointer_expression "*(uint *)puVar8" * (cast_expression "(uint *)puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" { (expression_statement "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);" (call_expression "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_0008de68)" ( (pointer_expression "*(code *)PTR___fprintf_chk_0008de68" * (cast_expression "(code *)PTR___fprintf_chk_0008de68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" ( (pointer_expression "*(undefined4 *)puVar16" * (cast_expression "(undefined4 *)puVar16" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) })) (expression_statement "puVar29 = *(uint **)puVar4;" (assignment_expression "puVar29 = *(uint **)puVar4" identifier = (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" identifier = (call_expression "xrealloc(puVar29)" identifier (argument_list "(puVar29)" ( identifier )))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar29 = *(uint **)puVar14;" (assignment_expression "puVar29 = *(uint **)puVar14" identifier = (pointer_expression "*(uint **)puVar14" * (cast_expression "(uint **)puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" identifier = (call_expression "xrealloc(puVar29)" identifier (argument_list "(puVar29)" ( identifier )))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" * (cast_expression "(undefined4 *)puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar29 = *(uint **)puVar12;" (assignment_expression "puVar29 = *(uint **)puVar12" identifier = (pointer_expression "*(uint **)puVar12" * (cast_expression "(uint **)puVar12" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar47 = xrealloc();" (assignment_expression "iVar47 = xrealloc()" identifier = (call_expression "xrealloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar40 = *(int *)(puVar7 + -0x2e50);" (assignment_expression "iVar40 = *(int *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(int *)puVar12 = iVar47;" (assignment_expression "*(int *)puVar12 = iVar47" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar40 <= (int)uVar45) goto LAB_0005511c;" if (parenthesized_expression "(iVar40 <= (int)uVar45)" ( (binary_expression "iVar40 <= (int)uVar45" identifier <= (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0005511c;" goto statement_identifier ;)) (expression_statement "iVar36 = uVar45 << 2;" (assignment_expression "iVar36 = uVar45 << 2" identifier = (binary_expression "uVar45 << 2" identifier << number_literal)) ;) (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar31 = *(int *)puVar14;" (assignment_expression "iVar31 = *(int *)puVar14" identifier = (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (do_statement "do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);" do (compound_statement "{\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          }" { (expression_statement "puVar46 = (undefined4 *)(iVar33 + iVar36);" (assignment_expression "puVar46 = (undefined4 *)(iVar33 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar33 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar36)" ( (binary_expression "iVar33 + iVar36" identifier + identifier) )))) ;) (expression_statement "puVar30 = (undefined4 *)(iVar31 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(iVar31 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar31 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (expression_statement "puVar22 = (undefined4 *)(iVar47 + iVar36);" (assignment_expression "puVar22 = (undefined4 *)(iVar47 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar47 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar36)" ( (binary_expression "iVar47 + iVar36" identifier + identifier) )))) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) (expression_statement "*puVar46 = 0;" (assignment_expression "*puVar46 = 0" (pointer_expression "*puVar46" * identifier) = number_literal) ;) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" * identifier) = number_literal) ;) (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" * identifier) = number_literal) ;) }) while (parenthesized_expression "(iVar40 << 2 != iVar36)" ( (binary_expression "iVar40 << 2 != iVar36" (binary_expression "iVar40 << 2" identifier << number_literal) != identifier) )) ;) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" identifier = (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" * (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) }))) (if_statement "if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" { (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00055138;" goto statement_identifier ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (if_statement "if (uVar28 <= uVar35) goto LAB_000552ac;" if (parenthesized_expression "(uVar28 <= uVar35)" ( (binary_expression "uVar28 <= uVar35" identifier <= identifier) )) (goto_statement "goto LAB_000552ac;" goto statement_identifier ;)) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) })) })) })) })) })) })) })) (labeled_statement "LAB_000554fc:\n                    /* WARNING: Subroutine does not return */\n  xalloc_die(puVar29);" statement_identifier : comment (expression_statement "xalloc_die(puVar29);" (call_expression "xalloc_die(puVar29)" identifier (argument_list "(puVar29)" ( identifier ))) ;)) (labeled_statement "LAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);" statement_identifier : (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;)) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" identifier = (binary_expression "piVar21 + iVar24" identifier + identifier)) ;) (if_statement "if (iVar24 == 0) goto LAB_000552e4;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000552e4;" goto statement_identifier ;)) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "piVar20 = piVar21;" (assignment_expression "piVar20 = piVar21" identifier = identifier) ;) (do_statement "do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);" do (compound_statement "{\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  }" { (expression_statement "iVar17 = *piVar20;" (assignment_expression "iVar17 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (if_statement "if (iVar17 == iVar38) {\n      bVar1 = false;\n    }" if (parenthesized_expression "(iVar17 == iVar38)" ( (binary_expression "iVar17 == iVar38" identifier == identifier) )) (compound_statement "{\n      bVar1 = false;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }) while (parenthesized_expression "(piVar34 != piVar20)" ( (binary_expression "piVar34 != piVar20" identifier != identifier) )) ;) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) goto LAB_000552e4;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000552e4;" goto statement_identifier ;)) (labeled_statement "LAB_00055138:\n  iVar38 = iVar38 + 1;" statement_identifier : (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)uVar45 <= iVar38) goto LAB_00055518;" if (parenthesized_expression "((int)uVar45 <= iVar38)" ( (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00055518;" goto statement_identifier ;)) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (goto_statement "goto LAB_00055104;" goto statement_identifier ;) (labeled_statement "LAB_000552e4:\n  cVar39 = *puVar15;" statement_identifier : (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;)) (expression_statement "iVar17 = *(int *)puVar14;" (assignment_expression "iVar17 = *(int *)puVar14" identifier = (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar47 = *(int *)puVar12;" (assignment_expression "iVar47 = *(int *)puVar12" identifier = (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);" do (compound_statement "{\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  }" { (expression_statement "iVar31 = iVar38 + *local_6c;" (assignment_expression "iVar31 = iVar38 + *local_6c" identifier = (binary_expression "iVar38 + *local_6c" identifier + (pointer_expression "*local_6c" * identifier))) ;) (expression_statement "iVar40 = iVar31 * 4;" (assignment_expression "iVar40 = iVar31 * 4" identifier = (binary_expression "iVar31 * 4" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar33 + iVar40) = *local_64;" (assignment_expression "*(undefined4 *)(iVar33 + iVar40) = *local_64" (pointer_expression "*(undefined4 *)(iVar33 + iVar40)" * (cast_expression "(undefined4 *)(iVar33 + iVar40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar40)" ( (binary_expression "iVar33 + iVar40" identifier + identifier) )))) = (pointer_expression "*local_64" * identifier)) ;) (if_statement "if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" if (parenthesized_expression "((cVar39 != '\0') && (piVar26 != (int *)0x0))" ( (binary_expression "(cVar39 != '\0') && (piVar26 != (int *)0x0)" (parenthesized_expression "(cVar39 != '\0')" ( (binary_expression "cVar39 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" { (expression_statement "*(int *)(iVar17 + iVar40) = piVar26[uVar45];" (assignment_expression "*(int *)(iVar17 + iVar40) = piVar26[uVar45]" (pointer_expression "*(int *)(iVar17 + iVar40)" * (cast_expression "(int *)(iVar17 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) = (subscript_expression "piVar26[uVar45]" identifier [ identifier ])) ;) })) (expression_statement "iVar36 = *local_6c;" (assignment_expression "iVar36 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "local_6c = local_6c + 1;" (assignment_expression "local_6c = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar47 + iVar40) = iVar36;" (assignment_expression "*(int *)(iVar47 + iVar40) = iVar36" (pointer_expression "*(int *)(iVar47 + iVar40)" * (cast_expression "(int *)(iVar47 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar40)" ( (binary_expression "iVar47 + iVar40" identifier + identifier) )))) = identifier) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 < uVar28)" ( (binary_expression "uVar45 < uVar28" identifier < identifier) )) ;) (expression_statement "iVar17 = *(int *)(puVar5 + -0x1904);" (assignment_expression "iVar17 = *(int *)(puVar5 + -0x1904)" identifier = (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)(iVar33 + iVar17 * 4);" (assignment_expression "piVar20 = (int *)(iVar33 + iVar17 * 4)" identifier = (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) )))) ;) (if_statement "if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" { (do_statement "do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);" do (compound_statement "{\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar20 + 1;" (assignment_expression "piVar26 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar26 != 0)" ( (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" * identifier) != number_literal) )) ;) (expression_statement "*(int *)(puVar5 + -0x1904) = iVar17;" (assignment_expression "*(int *)(puVar5 + -0x1904) = iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" identifier = (pointer_expression "*(int **)(puVar6 + -0x18f0)" * (cast_expression "(int **)(puVar6 + -0x18f0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" identifier = (cast_expression "(int *)((int)local_6c + iVar24 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + iVar24 * 4)" ( (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar24 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }" if (parenthesized_expression "(*(int *)puVar11 < iVar31)" ( (binary_expression "*(int *)puVar11 < iVar31" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) )) (compound_statement "{\n    *(int *)puVar11 = iVar31;\n  }" { (expression_statement "*(int *)puVar11 = iVar31;" (assignment_expression "*(int *)puVar11 = iVar31" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (labeled_statement "LAB_00054f00:\n  iVar24 = iVar24 + 1;" statement_identifier : (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;)) (expression_statement "*piVar34 = iVar38;" (assignment_expression "*piVar34 = iVar38" (pointer_expression "*piVar34" * identifier) = identifier) ;) (expression_statement "iVar40 = *(int *)(puVar6 + -0x18f4);" (assignment_expression "iVar40 = *(int *)(puVar6 + -0x18f4)" identifier = (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar47 + *piVar20 * 4) = iVar38;" (assignment_expression "*(int *)(iVar47 + *piVar20 * 4) = iVar38" (pointer_expression "*(int *)(iVar47 + *piVar20 * 4)" * (cast_expression "(int *)(iVar47 + *piVar20 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar20 * 4)" ( (binary_expression "iVar47 + *piVar20 * 4" identifier + (binary_expression "*piVar20 * 4" (pointer_expression "*piVar20" * identifier) * number_literal)) )))) = identifier) ;) (if_statement "if (iVar40 <= iVar24) goto LAB_00054f28;" if (parenthesized_expression "(iVar40 <= iVar24)" ( (binary_expression "iVar40 <= iVar24" identifier <= identifier) )) (goto_statement "goto LAB_00054f28;" goto statement_identifier ;)) (goto_statement "goto LAB_00054d58;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid tables_generate(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  void *pvVar4;\n  int iVar5;\n  size_t sVar6;\n  uint uVar7;\n  \n  puVar2 = PTR_nvectors_0008da54;\n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  iVar5 = *(int *)PTR_nvars_0008d808;\n  iVar3 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar3 + iVar5;\n  pvVar4 = xcalloc(iVar3 + iVar5,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18d8) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18dc) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18e0) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  uVar7 = *(uint *)puVar2;\n  sVar6 = uVar7 << 2;\n  *(void **)(puVar1 + -0x18e4) = pvVar4;\n  if ((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(sVar6);\n  }\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}\n\n" comment (function_definition "void tables_generate(void)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  void *pvVar4;\n  int iVar5;\n  size_t sVar6;\n  uint uVar7;\n  \n  puVar2 = PTR_nvectors_0008da54;\n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  iVar5 = *(int *)PTR_nvars_0008d808;\n  iVar3 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar3 + iVar5;\n  pvVar4 = xcalloc(iVar3 + iVar5,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18d8) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18dc) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18e0) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  uVar7 = *(uint *)puVar2;\n  sVar6 = uVar7 << 2;\n  *(void **)(puVar1 + -0x18e4) = pvVar4;\n  if ((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(sVar6);\n  }\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}" primitive_type (function_declarator "tables_generate(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  void *pvVar4;\n  int iVar5;\n  size_t sVar6;\n  uint uVar7;\n  \n  puVar2 = PTR_nvectors_0008da54;\n  puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;\n  iVar5 = *(int *)PTR_nvars_0008d808;\n  iVar3 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar3 + iVar5;\n  pvVar4 = xcalloc(iVar3 + iVar5,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18d8) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18dc) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  sVar6 = *(size_t *)puVar2;\n  *(void **)(puVar1 + -0x18e0) = pvVar4;\n  pvVar4 = xcalloc(sVar6,4);\n  uVar7 = *(uint *)puVar2;\n  sVar6 = uVar7 << 2;\n  *(void **)(puVar1 + -0x18e4) = pvVar4;\n  if ((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(sVar6);\n  }\n                    /* WARNING: Subroutine does not return */\n  xalloc_die();\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_nvectors_0008da54;" (assignment_expression "puVar2 = PTR_nvectors_0008da54" identifier = identifier) ;) (expression_statement "puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618;" (assignment_expression "puVar1 = PTR_saved_sigactions_28__sa_resv_0__0008d618" identifier = identifier) ;) (expression_statement "iVar5 = *(int *)PTR_nvars_0008d808;" (assignment_expression "iVar5 = *(int *)PTR_nvars_0008d808" identifier = (pointer_expression "*(int *)PTR_nvars_0008d808" * (cast_expression "(int *)PTR_nvars_0008d808" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar3 = *(int *)PTR_nstates_0008d698;" (assignment_expression "iVar3 = *(int *)PTR_nstates_0008d698" identifier = (pointer_expression "*(int *)PTR_nstates_0008d698" * (cast_expression "(int *)PTR_nstates_0008d698" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)PTR_nvectors_0008da54 = iVar3 + iVar5;" (assignment_expression "*(int *)PTR_nvectors_0008da54 = iVar3 + iVar5" (pointer_expression "*(int *)PTR_nvectors_0008da54" * (cast_expression "(int *)PTR_nvectors_0008da54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar3 + iVar5" identifier + identifier)) ;) (expression_statement "pvVar4 = xcalloc(iVar3 + iVar5,4);" (assignment_expression "pvVar4 = xcalloc(iVar3 + iVar5,4)" identifier = (call_expression "xcalloc(iVar3 + iVar5,4)" identifier (argument_list "(iVar3 + iVar5,4)" ( (binary_expression "iVar3 + iVar5" identifier + identifier) , number_literal )))) ;) (expression_statement "sVar6 = *(size_t *)puVar2;" (assignment_expression "sVar6 = *(size_t *)puVar2" identifier = (pointer_expression "*(size_t *)puVar2" * (cast_expression "(size_t *)puVar2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(void **)(puVar1 + -0x18d8) = pvVar4;" (assignment_expression "*(void **)(puVar1 + -0x18d8) = pvVar4" (pointer_expression "*(void **)(puVar1 + -0x18d8)" * (cast_expression "(void **)(puVar1 + -0x18d8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x18d8)" ( (binary_expression "puVar1 + -0x18d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = xcalloc(sVar6,4);" (assignment_expression "pvVar4 = xcalloc(sVar6,4)" identifier = (call_expression "xcalloc(sVar6,4)" identifier (argument_list "(sVar6,4)" ( identifier , number_literal )))) ;) (expression_statement "sVar6 = *(size_t *)puVar2;" (assignment_expression "sVar6 = *(size_t *)puVar2" identifier = (pointer_expression "*(size_t *)puVar2" * (cast_expression "(size_t *)puVar2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(void **)(puVar1 + -0x18dc) = pvVar4;" (assignment_expression "*(void **)(puVar1 + -0x18dc) = pvVar4" (pointer_expression "*(void **)(puVar1 + -0x18dc)" * (cast_expression "(void **)(puVar1 + -0x18dc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x18dc)" ( (binary_expression "puVar1 + -0x18dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = xcalloc(sVar6,4);" (assignment_expression "pvVar4 = xcalloc(sVar6,4)" identifier = (call_expression "xcalloc(sVar6,4)" identifier (argument_list "(sVar6,4)" ( identifier , number_literal )))) ;) (expression_statement "sVar6 = *(size_t *)puVar2;" (assignment_expression "sVar6 = *(size_t *)puVar2" identifier = (pointer_expression "*(size_t *)puVar2" * (cast_expression "(size_t *)puVar2" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(void **)(puVar1 + -0x18e0) = pvVar4;" (assignment_expression "*(void **)(puVar1 + -0x18e0) = pvVar4" (pointer_expression "*(void **)(puVar1 + -0x18e0)" * (cast_expression "(void **)(puVar1 + -0x18e0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x18e0)" ( (binary_expression "puVar1 + -0x18e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = xcalloc(sVar6,4);" (assignment_expression "pvVar4 = xcalloc(sVar6,4)" identifier = (call_expression "xcalloc(sVar6,4)" identifier (argument_list "(sVar6,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar7 = *(uint *)puVar2;" (assignment_expression "uVar7 = *(uint *)puVar2" identifier = (pointer_expression "*(uint *)puVar2" * (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar6 = uVar7 << 2;" (assignment_expression "sVar6 = uVar7 << 2" identifier = (binary_expression "uVar7 << 2" identifier << number_literal)) ;) (expression_statement "*(void **)(puVar1 + -0x18e4) = pvVar4;" (assignment_expression "*(void **)(puVar1 + -0x18e4) = pvVar4" (pointer_expression "*(void **)(puVar1 + -0x18e4)" * (cast_expression "(void **)(puVar1 + -0x18e4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + -0x18e4)" ( (binary_expression "puVar1 + -0x18e4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(sVar6);\n  }" if (parenthesized_expression "((-1 < (int)sVar6) && (uVar7 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)sVar6) && (uVar7 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)sVar6)" ( (binary_expression "-1 < (int)sVar6" number_literal < (cast_expression "(int)sVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar7 >> 0x1e == 0)" ( (binary_expression "uVar7 >> 0x1e == 0" (binary_expression "uVar7 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xmalloc(sVar6);\n  }" { comment (expression_statement "xmalloc(sVar6);" (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier ))) ;) })) comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void tables_generate(void)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    \n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}\n\n" (function_definition "void tables_generate(void)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    \n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" primitive_type (function_declarator "tables_generate(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    \n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "char cVar39;" primitive_type identifier ;) (declaration "int iVar40;" primitive_type identifier ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "undefined4 *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "undefined4 *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "undefined4 *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "uint uVar45;" type_identifier identifier ;) (declaration "undefined4 *puVar46;" type_identifier (pointer_declarator "*puVar46" * identifier) ;) (declaration "int iVar47;" primitive_type identifier ;) (declaration "int iVar48;" primitive_type identifier ;) (declaration "int *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (expression_statement "puVar13 = PTR_nvectors_0008da54;" (assignment_expression "puVar13 = PTR_nvectors_0008da54" identifier = identifier) ;) (expression_statement "puVar6 = PTR_nvars_0008d808;" (assignment_expression "puVar6 = PTR_nvars_0008d808" identifier = identifier) ;) (expression_statement "puVar9 = PTR_nstates_0008d698;" (assignment_expression "puVar9 = PTR_nstates_0008d698" identifier = identifier) ;) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)PTR_nvars_0008d808;" (assignment_expression "iVar24 = *(int *)PTR_nvars_0008d808" identifier = (pointer_expression "*(int *)PTR_nvars_0008d808" * (cast_expression "(int *)PTR_nvars_0008d808" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = *(int *)PTR_nstates_0008d698;" (assignment_expression "iVar17 = *(int *)PTR_nstates_0008d698" identifier = (pointer_expression "*(int *)PTR_nstates_0008d698" * (cast_expression "(int *)PTR_nstates_0008d698" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;" (assignment_expression "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24" (pointer_expression "*(int *)PTR_nvectors_0008da54" * (cast_expression "(int *)PTR_nvectors_0008da54" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar17 + iVar24" identifier + identifier)) ;) (expression_statement "uVar18 = xcalloc(iVar17 + iVar24,4);" (assignment_expression "uVar18 = xcalloc(iVar17 + iVar24,4)" identifier = (call_expression "xcalloc(iVar17 + iVar24,4)" identifier (argument_list "(iVar17 + iVar24,4)" ( (binary_expression "iVar17 + iVar24" identifier + identifier) , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18d8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18d8) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 *)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18dc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18dc) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 *)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" identifier = (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18e0) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e0) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 *)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" identifier = (pointer_expression "*(uint *)puVar13" * (cast_expression "(uint *)puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (expression_statement "*(undefined4 *)(puVar2 + -0x18e4) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e4) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e4)" * (cast_expression "(undefined4 *)(puVar2 + -0x18e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = PTR_nondeterministic_parser_0008da74;" (assignment_expression "puVar15 = PTR_nondeterministic_parser_0008da74" identifier = identifier) ;) (expression_statement "puVar3 = PTR_DAT_0008d618;" (assignment_expression "puVar3 = PTR_DAT_0008d618" identifier = identifier) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar3 + -0x18e8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar3 + -0x18e8) = uVar18" (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" * (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" if (parenthesized_expression "(cVar39 != '\0')" ( (binary_expression "cVar39 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" { (expression_statement "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();" (assignment_expression "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)()" identifier = (call_expression "(*(code *)PTR_conflicts_total_count_0008dce4)()" (parenthesized_expression "(*(code *)PTR_conflicts_total_count_0008dce4)" ( (pointer_expression "*(code *)PTR_conflicts_total_count_0008dce4" * (cast_expression "(code *)PTR_conflicts_total_count_0008dce4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) })) (expression_statement "puVar7 = PTR_yydefact_0008d968;" (assignment_expression "puVar7 = PTR_yydefact_0008d968" identifier = identifier) ;) (expression_statement "puVar10 = PTR_ntokens_0008d77c;" (assignment_expression "puVar10 = PTR_ntokens_0008d77c" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar9 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar9 << 2)" ( (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar7 = uVar18;" (assignment_expression "*(undefined4 *)puVar7 = uVar18" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar4 = PTR_DAT_0008d618;" (assignment_expression "puVar4 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar4 + -0x18ec) = uVar18;" (assignment_expression "*(undefined4 *)(puVar4 + -0x18ec) = uVar18" (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" * (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = iVar17 * 2 + 1;" (assignment_expression "uVar28 = iVar17 * 2 + 1" identifier = (binary_expression "iVar17 * 2 + 1" (binary_expression "iVar17 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x18fc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar5 + -0x18fc) = uVar18" (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 * 4);" (assignment_expression "puVar29 = (uint *)(uVar28 * 4)" identifier = (cast_expression "(uint *)(uVar28 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 * 4)" ( (binary_expression "uVar28 * 4" identifier * number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18;" (assignment_expression "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18" (pointer_expression "*(undefined4 *)PTR_conflict_list_0008da68" * (cast_expression "(undefined4 *)PTR_conflict_list_0008da68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;" (assignment_expression "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2" (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1900)" * (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1900)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0008d618 + -0x1900)" ( (binary_expression "PTR_DAT_0008d618 + -0x1900" identifier + number_literal) )))) = (binary_expression "iVar17 * 2" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;" (assignment_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1" (pointer_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c" * (cast_expression "(undefined4 *)PTR_conflict_list_cnt_0008da6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" if (parenthesized_expression "((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8))" ( (binary_expression "(cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)" (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < *(int *)PTR_nrules_0008d7c8)" ( (binary_expression "0 < *(int *)PTR_nrules_0008d7c8" number_literal < (pointer_expression "*(int *)PTR_nrules_0008d7c8" * (cast_expression "(int *)PTR_nrules_0008d7c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" { (expression_statement "iVar17 = *(int *)PTR_rules_0008d784;" (assignment_expression "iVar17 = *(int *)PTR_rules_0008d784" identifier = (pointer_expression "*(int *)PTR_rules_0008d784" * (cast_expression "(int *)PTR_rules_0008d784" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;" (assignment_expression "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" identifier = (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60" (pointer_expression "*(int *)PTR_nrules_0008d7c8" * (cast_expression "(int *)PTR_nrules_0008d7c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) + identifier)) ;) (do_statement "do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);" do (compound_statement "{\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              }" { (expression_statement "*(undefined1 *)(iVar17 + 0x38) = 0;" (assignment_expression "*(undefined1 *)(iVar17 + 0x38) = 0" (pointer_expression "*(undefined1 *)(iVar17 + 0x38)" * (cast_expression "(undefined1 *)(iVar17 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x38)" ( (binary_expression "iVar17 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = iVar17 + 0x60;" (assignment_expression "iVar17 = iVar17 + 0x60" identifier = (binary_expression "iVar17 + 0x60" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar24 != iVar17)" ( (binary_expression "iVar24 != iVar17" identifier != identifier) )) ;) })) (expression_statement "puVar12 = PTR_states_0008d7f8;" (assignment_expression "puVar12 = PTR_states_0008d7f8" identifier = identifier) ;) (expression_statement "puVar11 = PTR_rules_0008d784;" (assignment_expression "puVar11 = PTR_rules_0008d784" identifier = identifier) ;) (if_statement "if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" if (parenthesized_expression "(0 < *(int *)puVar9)" ( (binary_expression "0 < *(int *)puVar9" number_literal < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);" (assignment_expression "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0)" identifier = (cast_expression "(code *)(PTR_LAB_0008dc84 + 0x3af0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0008dc84 + 0x3af0)" ( (binary_expression "PTR_LAB_0008dc84 + 0x3af0" identifier + number_literal) )))) ;) (do_statement "do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);" do (compound_statement "{\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              }" { (expression_statement "iVar47 = iVar17 * 4;" (assignment_expression "iVar47 = iVar17 * 4" identifier = (binary_expression "iVar17 * 4" identifier * number_literal)) ;) (expression_statement "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));" (assignment_expression "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" identifier = (call_expression "(*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(*(undefined4 *)(*(int *)puVar12 + iVar47))" ( (pointer_expression "*(undefined4 *)(*(int *)puVar12 + iVar47)" * (cast_expression "(undefined4 *)(*(int *)puVar12 + iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar12 + iVar47)" ( (binary_expression "*(int *)puVar12 + iVar47" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) )))) ;) (if_statement "if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0;" (assignment_expression "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0" (pointer_expression "*(undefined4 *)(*(int *)puVar7 + iVar47)" * (cast_expression "(undefined4 *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = number_literal) ;) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (if_statement "if (iVar38 < 1) goto LAB_0005508c;" if (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0005508c;" goto statement_identifier ;)) (labeled_statement "LAB_00054494:\n                  uVar28 = 0;" statement_identifier : (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;)) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);" do (compound_statement "{\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  }" { (if_statement "if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }" if (parenthesized_expression "(*puVar29 != 0)" ( (binary_expression "*puVar29 != 0" (pointer_expression "*puVar29" * identifier) != number_literal) )) (compound_statement "{\n                      uVar28 = uVar28 + 1;\n                    }" { (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 + iVar38 != puVar29)" ( (binary_expression "puVar25 + iVar38 != puVar29" (binary_expression "puVar25 + iVar38" identifier + identifier) != identifier) )) ;) (if_statement "if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }" { (if_statement "if (*puVar15 == '\0') goto LAB_00054984;" if (parenthesized_expression "(*puVar15 == '\0')" ( (binary_expression "*puVar15 == '\0'" (pointer_expression "*puVar15" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00054984;" goto statement_identifier ;)) }) (else_clause "else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" else (compound_statement "{\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" { (expression_statement "iVar24 = uVar28 << 2;" (assignment_expression "iVar24 = uVar28 << 2" identifier = (binary_expression "uVar28 << 2" identifier << number_literal)) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (if_statement "if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;" if (parenthesized_expression "((iVar24 < 0) || (uVar28 >> 0x1e != 0))" ( (binary_expression "(iVar24 < 0) || (uVar28 >> 0x1e != 0)" (parenthesized_expression "(iVar24 < 0)" ( (binary_expression "iVar24 < 0" identifier < number_literal) )) || (parenthesized_expression "(uVar28 >> 0x1e != 0)" ( (binary_expression "uVar28 >> 0x1e != 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_000554fc;" goto statement_identifier ;)) (expression_statement "piVar20 = (int *)xmalloc(iVar24);" (assignment_expression "piVar20 = (int *)xmalloc(iVar24)" identifier = (cast_expression "(int *)xmalloc(iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar38 + iVar47) = piVar20;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar20" (pointer_expression "*(int **)(iVar38 + iVar47)" * (cast_expression "(int **)(iVar38 + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar47)" ( (binary_expression "iVar38 + iVar47" identifier + identifier) )))) = identifier) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18dc)" * (cast_expression "(int *)(puVar2 + -0x18dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "piVar21 = (int *)xmalloc(iVar24);" (assignment_expression "piVar21 = (int *)xmalloc(iVar24)" identifier = (cast_expression "(int *)xmalloc(iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "*(int **)(iVar38 + iVar47) = piVar21;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar21" (pointer_expression "*(int **)(iVar38 + iVar47)" * (cast_expression "(int **)(iVar38 + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar47)" ( (binary_expression "iVar38 + iVar47" identifier + identifier) )))) = identifier) ;) (if_statement "if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }" { (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar39 = '\0';" (assignment_expression "cVar39 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" else (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" { (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar24);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar24)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar24)" identifier (argument_list "(iVar24)" ( identifier ))))) ;) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) }))) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;" (assignment_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22" (pointer_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" * (cast_expression "(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e0) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18e0) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e0)" * (cast_expression "(int *)(puVar2 + -0x18e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (if_statement "if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" if (parenthesized_expression "(0 < iVar24)" ( (binary_expression "0 < iVar24" number_literal < identifier) )) (compound_statement "{\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" { (expression_statement "piVar26 = *(int **)(puVar4 + -0x18ec);" (assignment_expression "piVar26 = *(int **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(int **)(puVar4 + -0x18ec)" * (cast_expression "(int **)(puVar4 + -0x18ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar5 + -0x18fc);" (assignment_expression "puVar30 = *(undefined4 **)(puVar5 + -0x18fc)" identifier = (pointer_expression "*(undefined4 **)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 **)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" statement_identifier : (do_statement "do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" do (compound_statement "{\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      }" { (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" identifier = identifier) ;) (if_statement "if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" if (parenthesized_expression "(*piVar26 != 0)" ( (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" * identifier) != number_literal) )) (compound_statement "{\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" { (expression_statement "*piVar20 = iVar38;" (assignment_expression "*piVar20 = iVar38" (pointer_expression "*piVar20" * identifier) = identifier) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "*piVar21 = *piVar26;" (assignment_expression "*piVar21 = *piVar26" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar26" * identifier)) ;) (if_statement "if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (if_statement "if (iVar38 == iVar24) break;" if (parenthesized_expression "(iVar38 == iVar24)" ( (binary_expression "iVar38 == iVar24" identifier == identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000545c4;" goto statement_identifier ;) })) (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar30" * identifier)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) })) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" identifier = identifier) ;) }) while (parenthesized_expression "(iVar38 != iVar24)" ( (binary_expression "iVar38 != iVar24" identifier != identifier) )) ;)) })) (expression_statement "iVar24 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar24 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" identifier = (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" * (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" * (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar47)" ( (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar24 + iVar47)" * (cast_expression "(int *)(iVar24 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + iVar47)" ( (binary_expression "iVar24 + iVar47" identifier + identifier) )))) = (binary_expression "(piVar20[-1] - *piVar21) + 1" (parenthesized_expression "(piVar20[-1] - *piVar21)" ( (binary_expression "piVar20[-1] - *piVar21" (subscript_expression "piVar20[-1]" identifier [ number_literal ]) - (pointer_expression "*piVar21" * identifier)) )) + number_literal)) ;) (if_statement "if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" if (parenthesized_expression "(cVar39 == '\0')" ( (binary_expression "cVar39 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" { (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)(*(int *)puVar7 + iVar47);" (assignment_expression "iVar24 = *(int *)(*(int *)puVar7 + iVar47)" identifier = (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" * (cast_expression "(int *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) ))))) ;) (if_statement "if (iVar38 < 1) goto LAB_000549cc;" if (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) (goto_statement "goto LAB_000549cc;" goto statement_identifier ;)) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00054984:\n                      iVar47 = 0;" statement_identifier : (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" identifier = number_literal) ;)) (expression_statement "iVar40 = *(int *)puVar11;" (assignment_expression "iVar40 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (do_statement "do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);" do (compound_statement "{\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      }" { (if_statement "if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" if (parenthesized_expression "(*puVar25 + 0x7fffffff < 0x7fffffff)" ( (binary_expression "*puVar25 + 0x7fffffff < 0x7fffffff" (binary_expression "*puVar25 + 0x7fffffff" (pointer_expression "*puVar25" * identifier) + number_literal) < number_literal) )) (compound_statement "{\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" { (expression_statement "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;" (assignment_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1" (pointer_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" * (cast_expression "(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar40 + ~*puVar25 * 0x60 + 0x38)" ( (binary_expression "iVar40 + ~*puVar25 * 0x60 + 0x38" (binary_expression "iVar40 + ~*puVar25 * 0x60" identifier + (binary_expression "~*puVar25 * 0x60" (unary_expression "~*puVar25" ~ (pointer_expression "*puVar25" * identifier)) * number_literal)) + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" identifier = (binary_expression "iVar47 + 1" identifier + number_literal)) ;) (expression_statement "puVar25 = puVar25 + 1;" (assignment_expression "puVar25 = puVar25 + 1" identifier = (binary_expression "puVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar47 < iVar38)" ( (binary_expression "iVar47 < iVar38" identifier < identifier) )) ;) (goto_statement "goto LAB_000549cc;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(iVar24 + 4) + 1;" (assignment_expression "iVar24 = *(int *)(iVar24 + 4) + 1" identifier = (binary_expression "*(int *)(iVar24 + 4) + 1" (pointer_expression "*(int *)(iVar24 + 4)" * (cast_expression "(int *)(iVar24 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(*(int *)puVar7 + iVar47) = iVar24;" (assignment_expression "*(int *)(*(int *)puVar7 + iVar47) = iVar24" (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" * (cast_expression "(int *)(*(int *)puVar7 + iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar7 + iVar47)" ( (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = identifier) ;) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" if (parenthesized_expression "(0 < iVar38)" ( (binary_expression "0 < iVar38" number_literal < identifier) )) (compound_statement "{\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" { (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" identifier = (pointer_expression "*(uint **)(puVar4 + -0x18ec)" * (cast_expression "(uint **)(puVar4 + -0x18ec)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00054494;" goto statement_identifier ;) })) (labeled_statement "LAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;" statement_identifier : (if_statement "if (*puVar15 != '\0') goto LAB_00054640;" if (parenthesized_expression "(*puVar15 != '\0')" ( (binary_expression "*puVar15 != '\0'" (pointer_expression "*puVar15" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00054640;" goto statement_identifier ;))) (labeled_statement "LAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" statement_identifier : (if_statement "if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" { (expression_statement "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;" (assignment_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1" (pointer_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" * (cast_expression "(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" ( (binary_expression "*(int *)puVar11 + iVar24 * 0x60 + -0x28" (binary_expression "*(int *)puVar11 + iVar24 * 0x60" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "iVar24 * 0x60" identifier * number_literal)) + number_literal) )))) = number_literal) ;) }))) }))) (labeled_statement "LAB_00054640:\n                iVar17 = iVar17 + 1;" statement_identifier : (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar17 < *(int *)puVar9)" ( (binary_expression "iVar17 < *(int *)puVar9" identifier < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar4 + -0x18ec))" ( (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" * (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + -0x18ec)" ( (binary_expression "puVar4 + -0x18ec" identifier + number_literal) )))) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar5 + -0x18fc))" ( (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" * (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x18fc)" ( (binary_expression "puVar5 + -0x18fc" identifier + number_literal) )))) ))) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar9 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar9 << 2)" ( (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" * (cast_expression "(uint *)puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "puVar25 = (uint *)xmalloc();" (assignment_expression "puVar25 = (uint *)xmalloc()" identifier = (cast_expression "(uint *)xmalloc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar4 = PTR_yydefgoto_0008da4c;" (assignment_expression "puVar4 = PTR_yydefgoto_0008da4c" identifier = identifier) ;) (expression_statement "puVar7 = PTR_nsyms_0008d7bc;" (assignment_expression "puVar7 = PTR_nsyms_0008d7bc" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)puVar6 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar6 << 2)" identifier = (cast_expression "(uint *)(*(uint *)puVar6 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)puVar6 << 2)" ( (binary_expression "*(uint *)puVar6 << 2" (pointer_expression "*(uint *)puVar6" * (cast_expression "(uint *)puVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)puVar6 >> 0x1e == 0)" ( (binary_expression "*(uint *)puVar6 >> 0x1e == 0" (binary_expression "*(uint *)puVar6 >> 0x1e" (pointer_expression "*(uint *)puVar6" * (cast_expression "(uint *)puVar6" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) >> number_literal) == number_literal) ))) )) (compound_statement "{\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = *(int *)puVar7;" (assignment_expression "iVar17 = *(int *)puVar7" identifier = (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar11 = PTR_to_state_0008d978;" (assignment_expression "puVar11 = PTR_to_state_0008d978" identifier = identifier) ;) (expression_statement "puVar5 = PTR_from_state_0008d974;" (assignment_expression "puVar5 = PTR_from_state_0008d974" identifier = identifier) ;) (expression_statement "puVar6 = PTR_goto_map_0008d970;" (assignment_expression "puVar6 = PTR_goto_map_0008d970" identifier = identifier) ;) (if_statement "if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" if (parenthesized_expression "(iVar24 < iVar17)" ( (binary_expression "iVar24 < iVar17" identifier < identifier) )) (compound_statement "{\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" { (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" identifier = (pointer_expression "*(int *)PTR_goto_map_0008d970" * (cast_expression "(int *)PTR_goto_map_0008d970" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar17 = iVar24;" (assignment_expression "iVar17 = iVar24" identifier = identifier) ;) (do_statement "do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );" do (compound_statement "{\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  }" { (expression_statement "iVar38 = (iVar17 - iVar24) * 4;" (assignment_expression "iVar38 = (iVar17 - iVar24) * 4" identifier = (binary_expression "(iVar17 - iVar24) * 4" (parenthesized_expression "(iVar17 - iVar24)" ( (binary_expression "iVar17 - iVar24" identifier - identifier) )) * number_literal)) ;) (expression_statement "uVar28 = *(uint *)(iVar47 + iVar38);" (assignment_expression "uVar28 = *(uint *)(iVar47 + iVar38)" identifier = (pointer_expression "*(uint *)(iVar47 + iVar38)" * (cast_expression "(uint *)(iVar47 + iVar38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar38)" ( (binary_expression "iVar47 + iVar38" identifier + identifier) ))))) ;) (expression_statement "uVar45 = ((uint *)(iVar47 + iVar38))[1];" (assignment_expression "uVar45 = ((uint *)(iVar47 + iVar38))[1]" identifier = (subscript_expression "((uint *)(iVar47 + iVar38))[1]" (parenthesized_expression "((uint *)(iVar47 + iVar38))" ( (cast_expression "(uint *)(iVar47 + iVar38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar38)" ( (binary_expression "iVar47 + iVar38" identifier + identifier) ))) )) [ number_literal ])) ;) (if_statement "if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" if (parenthesized_expression "(uVar28 == uVar45)" ( (binary_expression "uVar28 == uVar45" identifier == identifier) )) (compound_statement "{\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" { (labeled_statement "LAB_00055468:\n                      iVar33 = -1;" statement_identifier : (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;" statement_identifier : (expression_statement "*(int *)(*(int *)puVar4 + iVar38) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + iVar38) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + iVar38)" * (cast_expression "(int *)(*(int *)puVar4 + iVar38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar4 + iVar38)" ( (binary_expression "*(int *)puVar4 + iVar38" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) = identifier) ;)) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" if (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" ( (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) <= (binary_expression "iVar17 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00054a2c;" goto statement_identifier ;)) }) (else_clause "else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" else (compound_statement "{\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" { (expression_statement "iVar40 = *(int *)puVar9;" (assignment_expression "iVar40 = *(int *)puVar9" identifier = (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" if (parenthesized_expression "(iVar40 < 1)" ( (binary_expression "iVar40 < 1" identifier < number_literal) )) (compound_statement "{\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }" { (if_statement "if (uVar45 <= uVar28) goto LAB_00055468;" if (parenthesized_expression "(uVar45 <= uVar28)" ( (binary_expression "uVar45 <= uVar28" identifier <= identifier) )) (goto_statement "goto LAB_00055468;" goto statement_identifier ;)) (labeled_statement "LAB_00054758:\n                        iVar31 = *(int *)puVar11;" statement_identifier : (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar36 = uVar28 * 4;" (assignment_expression "iVar36 = uVar28 * 4" identifier = (binary_expression "uVar28 * 4" identifier * number_literal)) ;) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" identifier = (cast_expression "(int *)(iVar31 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (do_statement "do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);" do (compound_statement "{\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        }" { (expression_statement "iVar33 = *piVar21;" (assignment_expression "iVar33 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "puVar25[iVar33] = puVar25[iVar33] + 1;" (assignment_expression "puVar25[iVar33] = puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" identifier [ identifier ]) = (binary_expression "puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" identifier [ identifier ]) + number_literal)) ;) }) while (parenthesized_expression "((int *)(iVar31 + uVar45 * 4) != piVar21)" ( (binary_expression "(int *)(iVar31 + uVar45 * 4) != piVar21" (cast_expression "(int *)(iVar31 + uVar45 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + uVar45 * 4)" ( (binary_expression "iVar31 + uVar45 * 4" identifier + (binary_expression "uVar45 * 4" identifier * number_literal)) ))) != identifier) )) ;) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;) (if_statement "if (0 < iVar40) goto LAB_00054798;" if (parenthesized_expression "(0 < iVar40)" ( (binary_expression "0 < iVar40" number_literal < identifier) )) (goto_statement "goto LAB_00054798;" goto statement_identifier ;)) }) (else_clause "else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" else (compound_statement "{\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" { (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);" do (compound_statement "{\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        }" { (expression_statement "*puVar29 = 0;" (assignment_expression "*puVar29 = 0" (pointer_expression "*puVar29" * identifier) = number_literal) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar25 + iVar40 != puVar29)" ( (binary_expression "puVar25 + iVar40 != puVar29" (binary_expression "puVar25 + iVar40" identifier + identifier) != identifier) )) ;) (if_statement "if (uVar28 < uVar45) goto LAB_00054758;" if (parenthesized_expression "(uVar28 < uVar45)" ( (binary_expression "uVar28 < uVar45" identifier < identifier) )) (goto_statement "goto LAB_00054758;" goto statement_identifier ;)) (labeled_statement "LAB_00054798:\n                        iVar31 = 0;" statement_identifier : (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;)) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" identifier = number_literal) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);" do (compound_statement "{\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        }" { (expression_statement "uVar37 = *puVar29;" (assignment_expression "uVar37 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }" if (parenthesized_expression "(uVar35 < uVar37)" ( (binary_expression "uVar35 < uVar37" identifier < identifier) )) (compound_statement "{\n                            iVar33 = iVar31;\n                          }" { (expression_statement "iVar33 = iVar31;" (assignment_expression "iVar33 = iVar31" identifier = identifier) ;) })) (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (if_statement "if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }" if (parenthesized_expression "(uVar35 < uVar37)" ( (binary_expression "uVar35 < uVar37" identifier < identifier) )) (compound_statement "{\n                            uVar35 = uVar37;\n                          }" { (expression_statement "uVar35 = uVar37;" (assignment_expression "uVar35 = uVar37" identifier = identifier) ;) })) }) while (parenthesized_expression "(iVar31 < iVar40)" ( (binary_expression "iVar31 < iVar40" identifier < identifier) )) ;) (if_statement "if (uVar45 <= uVar28) goto LAB_0005494c;" if (parenthesized_expression "(uVar45 <= uVar28)" ( (binary_expression "uVar45 <= uVar28" identifier <= identifier) )) (goto_statement "goto LAB_0005494c;" goto statement_identifier ;)) (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar36 = uVar28 << 2;" (assignment_expression "iVar36 = uVar28 << 2" identifier = (binary_expression "uVar28 << 2" identifier << number_literal)) ;) }))) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" identifier = (cast_expression "(int *)(iVar31 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" identifier = number_literal) ;) (expression_statement "uVar35 = uVar28;" (assignment_expression "uVar35 = uVar28" identifier = identifier) ;) (do_statement "do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);" do (compound_statement "{\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      }" { (if_statement "if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }" if (parenthesized_expression "(*piVar21 != iVar33)" ( (binary_expression "*piVar21 != iVar33" (pointer_expression "*piVar21" * identifier) != identifier) )) (compound_statement "{\n                          uVar37 = uVar37 + 1;\n                        }" { (expression_statement "uVar37 = uVar37 + 1;" (assignment_expression "uVar37 = uVar37 + 1" identifier = (binary_expression "uVar37 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar35 < uVar45)" ( (binary_expression "uVar35 < uVar45" identifier < identifier) )) ;) (if_statement "if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" if (parenthesized_expression "(uVar37 != 0)" ( (binary_expression "uVar37 != 0" identifier != number_literal) )) (compound_statement "{\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" { (expression_statement "iVar47 = uVar37 << 2;" (assignment_expression "iVar47 = uVar37 << 2" identifier = (binary_expression "uVar37 << 2" identifier << number_literal)) ;) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;" (assignment_expression "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4" identifier = (binary_expression "((iVar17 + *(int *)puVar9) - iVar24) * 4" (parenthesized_expression "((iVar17 + *(int *)puVar9) - iVar24)" ( (binary_expression "(iVar17 + *(int *)puVar9) - iVar24" (parenthesized_expression "(iVar17 + *(int *)puVar9)" ( (binary_expression "iVar17 + *(int *)puVar9" identifier + (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) - identifier) )) * number_literal)) ;) (expression_statement "puVar29 = (uint *)puVar2;" (assignment_expression "puVar29 = (uint *)puVar2" identifier = (cast_expression "(uint *)puVar2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" if (parenthesized_expression "((-1 < iVar47) && (uVar37 >> 0x1e == 0))" ( (binary_expression "(-1 < iVar47) && (uVar37 >> 0x1e == 0)" (parenthesized_expression "(-1 < iVar47)" ( (binary_expression "-1 < iVar47" number_literal < identifier) )) && (parenthesized_expression "(uVar37 >> 0x1e == 0)" ( (binary_expression "uVar37 >> 0x1e == 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" { (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar47);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar47)" identifier = (cast_expression "(undefined4 *)xmalloc(iVar47)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar47)" identifier (argument_list "(iVar47)" ( identifier ))))) ;) (expression_statement "iVar40 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar40 = *(int *)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18dc)" * (cast_expression "(int *)(puVar2 + -0x18dc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar38 + iVar24) = puVar22;" (assignment_expression "*(undefined4 **)(iVar38 + iVar24) = puVar22" (pointer_expression "*(undefined4 **)(iVar38 + iVar24)" * (cast_expression "(undefined4 **)(iVar38 + iVar24)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + iVar24)" ( (binary_expression "iVar38 + iVar24" identifier + identifier) )))) = identifier) ;) (expression_statement "piVar21 = (int *)xmalloc(iVar47);" (assignment_expression "piVar21 = (int *)xmalloc(iVar47)" identifier = (cast_expression "(int *)xmalloc(iVar47)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar47)" identifier (argument_list "(iVar47)" ( identifier ))))) ;) (expression_statement "*(int **)(iVar40 + iVar24) = piVar21;" (assignment_expression "*(int **)(iVar40 + iVar24) = piVar21" (pointer_expression "*(int **)(iVar40 + iVar24)" * (cast_expression "(int **)(iVar40 + iVar24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar40 + iVar24)" ( (binary_expression "iVar40 + iVar24" identifier + identifier) )))) = identifier) ;) (expression_statement "piVar20 = (int *)(*(int *)puVar11 + iVar36);" (assignment_expression "piVar20 = (int *)(*(int *)puVar11 + iVar36)" identifier = (cast_expression "(int *)(*(int *)puVar11 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar11 + iVar36)" ( (binary_expression "*(int *)puVar11 + iVar36" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (expression_statement "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36)" identifier = (cast_expression "(undefined4 *)(*(int *)puVar5 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar5 + iVar36)" ( (binary_expression "*(int *)puVar5 + iVar36" (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) ;) (do_statement "do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);" do (compound_statement "{\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          }" { (expression_statement "piVar26 = piVar21;" (assignment_expression "piVar26 = piVar21" identifier = identifier) ;) (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" identifier = identifier) ;) (if_statement "if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" if (parenthesized_expression "(*piVar20 != iVar33)" ( (binary_expression "*piVar20 != iVar33" (pointer_expression "*piVar20" * identifier) != identifier) )) (compound_statement "{\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" { (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar21 + 1;" (assignment_expression "piVar26 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar30" * identifier)) ;) (expression_statement "*piVar21 = *piVar20;" (assignment_expression "*piVar21 = *piVar20" (pointer_expression "*piVar21" * identifier) = (pointer_expression "*piVar20" * identifier)) ;) })) (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar26;" (assignment_expression "piVar21 = piVar26" identifier = identifier) ;) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" identifier = identifier) ;) }) while (parenthesized_expression "(uVar28 < uVar45)" ( (binary_expression "uVar28 < uVar45" identifier < identifier) )) ;) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" identifier = (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" * (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar24)" ( (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18d8)" * (cast_expression "(int *)(puVar2 + -0x18d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "iVar38 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar38 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" * (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar24)" ( (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) )))) + identifier) )))) = identifier) ;) (expression_statement "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar38 + iVar24)" * (cast_expression "(int *)(iVar38 + iVar24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + iVar24)" ( (binary_expression "iVar38 + iVar24" identifier + identifier) )))) = (binary_expression "(puVar46[-1] - *piVar21) + 1" (parenthesized_expression "(puVar46[-1] - *piVar21)" ( (binary_expression "puVar46[-1] - *piVar21" (subscript_expression "puVar46[-1]" identifier [ number_literal ]) - (pointer_expression "*piVar21" * identifier)) )) + number_literal)) ;) (expression_statement "iVar38 = (iVar17 - *(int *)puVar10) * 4;" (assignment_expression "iVar38 = (iVar17 - *(int *)puVar10) * 4" identifier = (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" ( (binary_expression "iVar17 - *(int *)puVar10" identifier - (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) * number_literal)) ;) (goto_statement "goto LAB_0005494c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000554fc;" goto statement_identifier ;) })) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" * (cast_expression "(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" ( (binary_expression "*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4" (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" ( (binary_expression "iVar17 - *(int *)puVar10" identifier - (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) * number_literal)) )))) = identifier) ;) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" if (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" ( (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" * (cast_expression "(int *)puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) <= (binary_expression "iVar17 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00054a2c;" goto statement_identifier ;)) }))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" identifier = (pointer_expression "*(int *)PTR_goto_map_0008d970" * (cast_expression "(int *)PTR_goto_map_0008d970" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (labeled_statement "LAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;" statement_identifier : (expression_statement "puVar6 = PTR_DAT_0008d618;" (assignment_expression "puVar6 = PTR_DAT_0008d618" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar25);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar25)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar25)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar47);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar47)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar47)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_from_state_0008d974)" ( (pointer_expression "*(undefined4 *)PTR_from_state_0008d974" * (cast_expression "(undefined4 *)PTR_from_state_0008d974" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar11)" ( (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "iVar17 = xcalloc(*(undefined4 *)puVar13,4);" (assignment_expression "iVar17 = xcalloc(*(undefined4 *)puVar13,4)" identifier = (call_expression "xcalloc(*(undefined4 *)puVar13,4)" identifier (argument_list "(*(undefined4 *)puVar13,4)" ( (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" identifier = (pointer_expression "*(uint *)puVar13" * (cast_expression "(uint *)puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(puVar6 + -0x18f0) = iVar17;" (assignment_expression "*(int *)(puVar6 + -0x18f0) = iVar17" (pointer_expression "*(int *)(puVar6 + -0x18f0)" * (cast_expression "(int *)(puVar6 + -0x18f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar6 + -0x18f4) = 0;" (assignment_expression "*(undefined4 *)(puVar6 + -0x18f4) = 0" (pointer_expression "*(undefined4 *)(puVar6 + -0x18f4)" * (cast_expression "(undefined4 *)(puVar6 + -0x18f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" if (parenthesized_expression "(0 < (int)uVar28)" ( (binary_expression "0 < (int)uVar28" number_literal < (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "puVar25 = *(uint **)(puVar2 + -0x18e4);" (assignment_expression "puVar25 = *(uint **)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(uint **)(puVar2 + -0x18e4)" * (cast_expression "(uint **)(puVar2 + -0x18e4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "iVar47 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar47 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);" do (compound_statement "{\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" { (expression_statement "uVar35 = *puVar29;" (assignment_expression "uVar35 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;) (if_statement "if (uVar35 == 0) break;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar40 = *(int *)(iVar47 + uVar45 * 4);" (assignment_expression "iVar40 = *(int *)(iVar47 + uVar45 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + uVar45 * 4)" * (cast_expression "(int *)(iVar47 + uVar45 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + uVar45 * 4)" ( (binary_expression "iVar47 + uVar45 * 4" identifier + (binary_expression "uVar45 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" if (parenthesized_expression "(iVar38 != -1)" ( (binary_expression "iVar38 != -1" identifier != number_literal) )) (compound_statement "{\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" { (expression_statement "iVar48 = iVar38 * 4;" (assignment_expression "iVar48 = iVar38 * 4" identifier = (binary_expression "iVar38 * 4" identifier * number_literal)) ;) (expression_statement "iVar36 = *(int *)(iVar17 + iVar48);" (assignment_expression "iVar36 = *(int *)(iVar17 + iVar48)" identifier = (pointer_expression "*(int *)(iVar17 + iVar48)" * (cast_expression "(int *)(iVar17 + iVar48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar48)" ( (binary_expression "iVar17 + iVar48" identifier + identifier) ))))) ;) (expression_statement "iVar31 = *(int *)(iVar47 + iVar36 * 4);" (assignment_expression "iVar31 = *(int *)(iVar47 + iVar36 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + iVar36 * 4)" * (cast_expression "(int *)(iVar47 + iVar36 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar36 * 4)" ( (binary_expression "iVar47 + iVar36 * 4" identifier + (binary_expression "iVar36 * 4" identifier * number_literal)) ))))) ;) (expression_statement "iVar33 = iVar38;" (assignment_expression "iVar33 = iVar38" identifier = identifier) ;) (if_statement "if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" if (parenthesized_expression "(iVar31 < iVar40)" ( (binary_expression "iVar31 < iVar40" identifier < identifier) )) (compound_statement "{\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }" { (expression_statement "iVar31 = iVar17 + iVar48 + 4;" (assignment_expression "iVar31 = iVar17 + iVar48 + 4" identifier = (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);" do (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          }" { (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" identifier = (binary_expression "iVar33 + -1" identifier + number_literal)) ;) (if_statement "if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" if (parenthesized_expression "(iVar33 == -1)" ( (binary_expression "iVar33 == -1" identifier == number_literal) )) (compound_statement "{\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" { (expression_statement "iVar31 = -1;" (assignment_expression "iVar31 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_00054b68;" goto statement_identifier ;) })) (expression_statement "piVar21 = (int *)(iVar31 + -8);" (assignment_expression "piVar21 = (int *)(iVar31 + -8)" identifier = (cast_expression "(int *)(iVar31 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + -8)" ( (binary_expression "iVar31 + -8" identifier + number_literal) )))) ;) (expression_statement "iVar41 = *(int *)(iVar47 + *piVar21 * 4);" (assignment_expression "iVar41 = *(int *)(iVar47 + *piVar21 * 4)" identifier = (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" * (cast_expression "(int *)(iVar47 + *piVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar21 * 4)" ( (binary_expression "iVar47 + *piVar21 * 4" identifier + (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" * identifier) * number_literal)) ))))) ;) (expression_statement "iVar31 = iVar31 + -4;" (assignment_expression "iVar31 = iVar31 + -4" identifier = (binary_expression "iVar31 + -4" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar41 < iVar40)" ( (binary_expression "iVar41 < iVar40" identifier < identifier) )) ;) (if_statement "if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;" if (parenthesized_expression "((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35))" ( (binary_expression "(iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == iVar41)" ( (binary_expression "iVar40 == iVar41" identifier == identifier) )) && (parenthesized_expression "(puVar25[*piVar21] < uVar35)" ( (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" identifier [ (pointer_expression "*piVar21" * identifier) ]) < identifier) ))) )) (goto_statement "goto LAB_00055404;" goto statement_identifier ;)) }) (else_clause "else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" else (compound_statement "{\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" { (if_statement "if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;" if (parenthesized_expression "((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36]))" ( (binary_expression "(iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])" (parenthesized_expression "(iVar40 != iVar31)" ( (binary_expression "iVar40 != iVar31" identifier != identifier) )) || (parenthesized_expression "(uVar35 <= puVar25[iVar36])" ( (binary_expression "uVar35 <= puVar25[iVar36]" identifier <= (subscript_expression "puVar25[iVar36]" identifier [ identifier ])) ))) )) (goto_statement "goto LAB_00054b90;" goto statement_identifier ;)) (labeled_statement "LAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;" statement_identifier : (expression_statement "iVar41 = iVar17 + iVar33 * 4;" (assignment_expression "iVar41 = iVar17 + iVar33 * 4" identifier = (binary_expression "iVar17 + iVar33 * 4" identifier + (binary_expression "iVar33 * 4" identifier * number_literal))) ;)) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));" do (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          }" { (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" identifier = (binary_expression "iVar33 + -1" identifier + number_literal)) ;) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" identifier = identifier) ;) (if_statement "if (iVar33 == -1) goto LAB_00054b68;" if (parenthesized_expression "(iVar33 == -1)" ( (binary_expression "iVar33 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00054b68;" goto statement_identifier ;)) (expression_statement "piVar21 = (int *)(iVar41 + -4);" (assignment_expression "piVar21 = (int *)(iVar41 + -4)" identifier = (cast_expression "(int *)(iVar41 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar41 + -4)" ( (binary_expression "iVar41 + -4" identifier + number_literal) )))) ;) }) while (parenthesized_expression "((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35))" ( (binary_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4))" ( (binary_expression "iVar40 == *(int *)(iVar47 + *piVar21 * 4)" identifier == (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" * (cast_expression "(int *)(iVar47 + *piVar21 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar21 * 4)" ( (binary_expression "iVar47 + *piVar21 * 4" identifier + (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" * identifier) * number_literal)) ))))) )) && (parenthesized_expression "(iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" ( (comma_expression "iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35" (assignment_expression "iVar41 = iVar41 + -4" identifier = (binary_expression "iVar41 + -4" identifier + number_literal)) , (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" identifier [ (pointer_expression "*piVar21" * identifier) ]) < identifier)) ))) )) ;) }))) (expression_statement "bVar1 = iVar33 < iVar38;" (assignment_expression "bVar1 = iVar33 < iVar38" identifier = (binary_expression "iVar33 < iVar38" identifier < identifier)) ;) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" identifier = identifier) ;) (expression_statement "iVar38 = iVar33;" (assignment_expression "iVar38 = iVar33" identifier = identifier) ;) (if_statement "if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" { (labeled_statement "LAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);" statement_identifier : (expression_statement "piVar21 = (int *)(iVar17 + iVar48 + 4);" (assignment_expression "piVar21 = (int *)(iVar17 + iVar48 + 4)" identifier = (cast_expression "(int *)(iVar17 + iVar48 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar48 + 4)" ( (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" identifier + identifier) + number_literal) )))) ;)) (while_statement "while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" { (expression_statement "*piVar21 = iVar36;" (assignment_expression "*piVar21 = iVar36" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "iVar38 = iVar31;" (assignment_expression "iVar38 = iVar31" identifier = identifier) ;) (if_statement "if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;" if (parenthesized_expression "((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1)" ( (binary_expression "(int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1" (cast_expression "(int *)(iVar17 + 4 + iVar33 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 4 + iVar33 * 4)" ( (binary_expression "iVar17 + 4 + iVar33 * 4" (binary_expression "iVar17 + 4" identifier + number_literal) + (binary_expression "iVar33 * 4" identifier * number_literal)) ))) == (binary_expression "piVar21 + -1" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar36 = piVar21[-2];" (assignment_expression "iVar36 = piVar21[-2]" identifier = (subscript_expression "piVar21[-2]" identifier [ number_literal ])) ;) (expression_statement "piVar21 = piVar21 + -1;" (assignment_expression "piVar21 = piVar21 + -1" identifier = (binary_expression "piVar21 + -1" identifier + number_literal)) ;) })) })) })) (labeled_statement "LAB_00054b90:\n                      iVar24 = iVar24 + 1;" statement_identifier : (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;)) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;" (assignment_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45" (pointer_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4)" * (cast_expression "(uint *)(iVar17 + (iVar38 + 1) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + (iVar38 + 1) * 4)" ( (binary_expression "iVar17 + (iVar38 + 1) * 4" identifier + (binary_expression "(iVar38 + 1) * 4" (parenthesized_expression "(iVar38 + 1)" ( (binary_expression "iVar38 + 1" identifier + number_literal) )) * number_literal)) )))) = identifier) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) (if_statement "if (uVar45 == uVar28) goto LAB_00054bb0;" if (parenthesized_expression "(uVar45 == uVar28)" ( (binary_expression "uVar45 == uVar28" identifier == identifier) )) (goto_statement "goto LAB_00054bb0;" goto statement_identifier ;)) })) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 != uVar28)" ( (binary_expression "uVar45 != uVar28" identifier != identifier) )) ;) (labeled_statement "LAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" statement_identifier : (if_statement "if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" { (expression_statement "*(int *)(puVar6 + -0x18f4) = iVar24;" (assignment_expression "*(int *)(puVar6 + -0x18f4) = iVar24" (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "puVar10 = PTR_base_0008da48;" (assignment_expression "puVar10 = PTR_base_0008da48" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)puVar10 = uVar18;" (assignment_expression "*(undefined4 *)puVar10 = uVar18" (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar4 = PTR_table_0008da58;" (assignment_expression "puVar4 = PTR_table_0008da58" identifier = identifier) ;) (expression_statement "puVar7 = PTR_DAT_0008d618;" (assignment_expression "puVar7 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" identifier = (cast_expression "(uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) << 2)" ( (binary_expression "*(uint *)(puVar6 + -0x18f4) << 2" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" * (cast_expression "(uint *)(puVar6 + -0x18f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" if (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" ( (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0" (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" * (cast_expression "(uint *)(puVar6 + -0x18f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) >> number_literal) == number_literal) ))) )) (compound_statement "{\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" { (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" identifier = (call_expression "xmalloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar7 + -0x18f8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar7 + -0x18f8) = uVar18" (pointer_expression "*(undefined4 *)(puVar7 + -0x18f8)" * (cast_expression "(undefined4 *)(puVar7 + -0x18f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar14 = PTR_conflict_table_0008da64;" (assignment_expression "puVar14 = PTR_conflict_table_0008da64" identifier = identifier) ;) (expression_statement "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);" (assignment_expression "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" identifier = (call_expression "xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" identifier (argument_list "(*(undefined4 *)(puVar7 + -0x2e50),4)" ( (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" * (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar27 = *(undefined4 *)(puVar7 + -0x2e50);" (assignment_expression "uVar27 = *(undefined4 *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" * (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" identifier = (call_expression "xcalloc(uVar27,4)" identifier (argument_list "(uVar27,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar28 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar28 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" * (cast_expression "(undefined4 *)puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar12 = PTR_check_0008da60;" (assignment_expression "puVar12 = PTR_check_0008da60" identifier = identifier) ;) (expression_statement "puVar11 = PTR_high_0008da44;" (assignment_expression "puVar11 = PTR_high_0008da44" identifier = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" identifier = identifier) ;) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" identifier = (cast_expression "(uint *)(uVar28 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 << 2)" ( (binary_expression "uVar28 << 2" identifier << number_literal) )))) ;) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" if (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" ( (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" ( (binary_expression "-1 < (int)puVar29" number_literal < (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar28 >> 0x1e == 0)" ( (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" identifier >> number_literal) == number_literal) ))) )) (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" { (expression_statement "puVar22 = (undefined4 *)xmalloc();" (assignment_expression "puVar22 = (undefined4 *)xmalloc()" identifier = (cast_expression "(undefined4 *)xmalloc()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(puVar5 + -0x1904) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + -0x1904) = 0" (pointer_expression "*(undefined4 *)(puVar5 + -0x1904)" * (cast_expression "(undefined4 *)(puVar5 + -0x1904)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)puVar12 = puVar22;" (assignment_expression "*(undefined4 **)puVar12 = puVar22" (pointer_expression "*(undefined4 **)puVar12" * (cast_expression "(undefined4 **)puVar12" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" if (parenthesized_expression "(0 < *(int *)puVar13)" ( (binary_expression "0 < *(int *)puVar13" number_literal < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar30 = *(undefined4 **)puVar10;" (assignment_expression "puVar30 = *(undefined4 **)puVar10" identifier = (pointer_expression "*(undefined4 **)puVar10" * (cast_expression "(undefined4 **)puVar10" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (do_statement "do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);" do (compound_statement "{\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "*puVar30 = 0x80000000;" (assignment_expression "*puVar30 = 0x80000000" (pointer_expression "*puVar30" * identifier) = number_literal) ;) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" identifier = (binary_expression "puVar30 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)puVar13)" ( (binary_expression "iVar17 < *(int *)puVar13" identifier < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" if (parenthesized_expression "(0 < *(int *)(puVar7 + -0x2e50))" ( (binary_expression "0 < *(int *)(puVar7 + -0x2e50)" number_literal < (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) )) (compound_statement "{\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" { (expression_statement "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);" (assignment_expression "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50)" identifier = (binary_expression "puVar22 + *(int *)(puVar7 + -0x2e50)" identifier + (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))))) ;) (do_statement "do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);" do (compound_statement "{\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        }" { (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" * identifier) = number_literal) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar30 != puVar22)" ( (binary_expression "puVar30 != puVar22" identifier != identifier) )) ;) })) (expression_statement "puVar8 = PTR_trace_flag_0008d64c;" (assignment_expression "puVar8 = PTR_trace_flag_0008d64c" identifier = identifier) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" identifier = (pointer_expression "*(int **)(puVar6 + -0x18f0)" * (cast_expression "(int **)(puVar6 + -0x18f0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" if (parenthesized_expression "(*(int *)(puVar6 + -0x18f4) < 1)" ( (binary_expression "*(int *)(puVar6 + -0x18f4) < 1" (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" { (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" statement_identifier : (expression_statement "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" (assignment_expression "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13)" identifier = (call_expression "FUN_000541a0(iVar47,*(undefined4 *)puVar13)" identifier (argument_list "(iVar47,*(undefined4 *)puVar13)" ( identifier , (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )))) ;)) (expression_statement "uVar27 = *(undefined4 *)puVar4;" (assignment_expression "uVar27 = *(undefined4 *)puVar4" identifier = (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar24 = *(int *)puVar11;" (assignment_expression "iVar24 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18;" (assignment_expression "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18" (pointer_expression "*(undefined4 *)PTR_base_ninf_0008da50" * (cast_expression "(undefined4 *)PTR_base_ninf_0008da50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar18 = FUN_000541a0(uVar27,iVar24 + 1);" (assignment_expression "uVar18 = FUN_000541a0(uVar27,iVar24 + 1)" identifier = (call_expression "FUN_000541a0(uVar27,iVar24 + 1)" identifier (argument_list "(uVar27,iVar24 + 1)" ( identifier , (binary_expression "iVar24 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar2 = PTR_free_0008df9c;" (assignment_expression "puVar2 = PTR_free_0008df9c" identifier = identifier) ;) (expression_statement "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18;" (assignment_expression "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18" (pointer_expression "*(undefined4 *)PTR_table_ninf_0008da5c" * (cast_expression "(undefined4 *)PTR_table_ninf_0008da5c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)puVar2)(piVar21);" (call_expression "(*(code *)puVar2)(piVar21)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar21)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(local_6c);" (call_expression "(*(code *)PTR_free_0008df9c)(local_6c)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_6c)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar17);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(puVar3 + -0x18e8))" ( (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" * (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" if (parenthesized_expression "(0 < *(int *)puVar13)" ( (binary_expression "0 < *(int *)puVar13" number_literal < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "puVar42 = puVar30;" (assignment_expression "puVar42 = puVar30" identifier = identifier) ;) (expression_statement "puVar43 = puVar22;" (assignment_expression "puVar43 = puVar22" identifier = identifier) ;) (expression_statement "puVar44 = puVar46;" (assignment_expression "puVar44 = puVar46" identifier = identifier) ;) (do_statement "do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);" do (compound_statement "{\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          }" { (expression_statement "uVar18 = *puVar44;" (assignment_expression "uVar18 = *puVar44" identifier = (pointer_expression "*puVar44" * identifier)) ;) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "puVar44 = puVar44 + 1;" (assignment_expression "puVar44 = puVar44 + 1" identifier = (binary_expression "puVar44 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(uVar18);" (call_expression "(*(code *)PTR_free_0008df9c)(uVar18)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar18)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar43);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar43)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar43)" ( (pointer_expression "*puVar43" * identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar42);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar42)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar42)" ( (pointer_expression "*puVar42" * identifier) ))) ;) (expression_statement "puVar42 = puVar42 + 1;" (assignment_expression "puVar42 = puVar42 + 1" identifier = (binary_expression "puVar42 + 1" identifier + number_literal)) ;) (expression_statement "puVar43 = puVar43 + 1;" (assignment_expression "puVar43 = puVar43 + 1" identifier = (binary_expression "puVar43 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)puVar13)" ( (binary_expression "iVar17 < *(int *)puVar13" identifier < (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar46);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar46)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar46)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar22);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar22)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar22)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar30);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar30)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" ( (pointer_expression "*(code *)PTR_free_0008df9c" * (cast_expression "(code *)PTR_free_0008df9c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar30)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar23 = PTR_DAT_0008d800 + -0x470c;" (assignment_expression "puVar23 = PTR_DAT_0008d800 + -0x470c" identifier = (binary_expression "PTR_DAT_0008d800 + -0x470c" identifier + number_literal)) ;) (labeled_statement "LAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;" statement_identifier : (expression_statement "puVar16 = PTR_stderr_0008dfb4;" (assignment_expression "puVar16 = PTR_stderr_0008dfb4" identifier = identifier) ;)) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" identifier = (cast_expression "(int *)((int)local_6c + iVar24 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + iVar24 * 4)" ( (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar24 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar47 = *piVar20;" (assignment_expression "iVar47 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar34 = puVar46 + iVar47;" (assignment_expression "piVar34 = puVar46 + iVar47" identifier = (binary_expression "puVar46 + iVar47" identifier + identifier)) ;) (expression_statement "piVar26 = (int *)puVar30[iVar47];" (assignment_expression "piVar26 = (int *)puVar30[iVar47]" identifier = (cast_expression "(int *)puVar30[iVar47]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar30[iVar47]" identifier [ identifier ]))) ;) (expression_statement "piVar21 = puVar22 + iVar47;" (assignment_expression "piVar21 = puVar22 + iVar47" identifier = (binary_expression "puVar22 + iVar47" identifier + identifier)) ;) (expression_statement "uVar28 = *(uint *)(iVar17 + iVar47 * 4);" (assignment_expression "uVar28 = *(uint *)(iVar17 + iVar47 * 4)" identifier = (pointer_expression "*(uint *)(iVar17 + iVar47 * 4)" * (cast_expression "(uint *)(iVar17 + iVar47 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar47 * 4)" ( (binary_expression "iVar17 + iVar47 * 4" identifier + (binary_expression "iVar47 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" if (parenthesized_expression "(iVar47 < *(int *)puVar9)" ( (binary_expression "iVar47 < *(int *)puVar9" identifier < (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" { (if_statement "if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" if (parenthesized_expression "((piVar26 != (int *)0x0) && (uVar28 != 0))" ( (binary_expression "(piVar26 != (int *)0x0) && (uVar28 != 0)" (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(uVar28 != 0)" ( (binary_expression "uVar28 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" { (if_statement "if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" if (parenthesized_expression "(*piVar26 == 0)" ( (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" * identifier) == number_literal) )) (compound_statement "{\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "piVar32 = piVar26;" (assignment_expression "piVar32 = piVar26" identifier = identifier) ;) (do_statement "do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);" do (compound_statement "{\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            }" { (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" identifier = (binary_expression "piVar32 + 1" identifier + number_literal)) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (if_statement "if (uVar45 == uVar28) goto LAB_00054de4;" if (parenthesized_expression "(uVar45 == uVar28)" ( (binary_expression "uVar45 == uVar28" identifier == identifier) )) (goto_statement "goto LAB_00054de4;" goto statement_identifier ;)) }) while (parenthesized_expression "(*piVar32 == 0)" ( (binary_expression "*piVar32 == 0" (pointer_expression "*piVar32" * identifier) == number_literal) )) ;) })) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (labeled_statement "LAB_000550cc:\n                          local_6c = (int *)*piVar34;" statement_identifier : (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;)) (goto_statement "goto LAB_000550d4;" goto statement_identifier ;) })) (labeled_statement "LAB_00054de4:\n                        iVar38 = iVar24 + -1;" statement_identifier : (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" identifier = (binary_expression "iVar24 + -1" identifier + number_literal)) ;)) (if_statement "if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" { (expression_statement "iVar33 = piVar20[-1];" (assignment_expression "iVar33 = piVar20[-1]" identifier = (subscript_expression "piVar20[-1]" identifier [ number_literal ])) ;) (expression_statement "iVar31 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar31 = *(int *)(puVar3 + -0x18e8)" identifier = (pointer_expression "*(int *)(puVar3 + -0x18e8)" * (cast_expression "(int *)(puVar3 + -0x18e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -0x18e8)" ( (binary_expression "puVar3 + -0x18e8" identifier + number_literal) ))))) ;) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" identifier = (binary_expression "iVar33 * 4" identifier * number_literal)) ;) (expression_statement "iVar47 = *(int *)(iVar31 + iVar47 * 4);" (assignment_expression "iVar47 = *(int *)(iVar31 + iVar47 * 4)" identifier = (pointer_expression "*(int *)(iVar31 + iVar47 * 4)" * (cast_expression "(int *)(iVar31 + iVar47 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar47 * 4)" ( (binary_expression "iVar31 + iVar47 * 4" identifier + (binary_expression "iVar47 * 4" identifier * number_literal)) ))))) ;) (if_statement "if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" if (parenthesized_expression "((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28))" ( (binary_expression "(*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" (parenthesized_expression "(*(int *)(iVar31 + iVar40) == iVar47)" ( (binary_expression "*(int *)(iVar31 + iVar40) == iVar47" (pointer_expression "*(int *)(iVar31 + iVar40)" * (cast_expression "(int *)(iVar31 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar40)" ( (binary_expression "iVar31 + iVar40" identifier + identifier) )))) == identifier) )) && (parenthesized_expression "(piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" ( (comma_expression "piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28" (assignment_expression "piVar32 = piVar20" identifier = identifier) , (binary_expression "*(uint *)(iVar17 + iVar40) == uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" * (cast_expression "(uint *)(iVar17 + iVar40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) == identifier)) ))) )) (compound_statement "{\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" { (do_statement "do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );" do (compound_statement "{\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            }" { (expression_statement "iVar48 = 1;" (assignment_expression "iVar48 = 1" identifier = number_literal) ;) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (if_statement "if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" if (parenthesized_expression "(uVar28 + 1 == 1)" ( (binary_expression "uVar28 + 1 == 1" (binary_expression "uVar28 + 1" identifier + number_literal) == number_literal) )) (compound_statement "{\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" { (labeled_statement "LAB_00054edc:\n                                if (iVar33 < 0) break;" statement_identifier : (if_statement "if (iVar33 < 0) break;" if (parenthesized_expression "(iVar33 < 0)" ( (binary_expression "iVar33 < 0" identifier < number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = *(int *)(iVar47 + iVar40);" (assignment_expression "iVar38 = *(int *)(iVar47 + iVar40)" identifier = (pointer_expression "*(int *)(iVar47 + iVar40)" * (cast_expression "(int *)(iVar47 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar40)" ( (binary_expression "iVar47 + iVar40" identifier + identifier) ))))) ;) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" identifier = (binary_expression "piVar21 + iVar24" identifier + identifier)) ;) (goto_statement "goto LAB_00054f00;" goto statement_identifier ;) })) (while_statement "while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" while (parenthesized_expression "(((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))" ( (parenthesized_expression "((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))))" ( (binary_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" (parenthesized_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)))" ( (comma_expression "local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) , (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar22 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar22 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar22 + iVar40)" * (cast_expression "(int *)((int)puVar22 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + iVar40)" ( (binary_expression "(int)puVar22 + iVar40" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == (pointer_expression "*(int *)((int)local_64 + iVar36)" * (cast_expression "(int *)((int)local_64 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + iVar36)" ( (binary_expression "(int)local_64 + iVar36" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) && (parenthesized_expression "(*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" ( (binary_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar46 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar46 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar46 + iVar40)" * (cast_expression "(int *)((int)puVar46 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar46 + iVar40)" ( (binary_expression "(int)puVar46 + iVar40" (cast_expression "(int)puVar46" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == (pointer_expression "*(int *)(*piVar34 + iVar36)" * (cast_expression "(int *)(*piVar34 + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar34 + iVar36)" ( (binary_expression "*piVar34 + iVar36" (pointer_expression "*piVar34" * identifier) + identifier) ))))) )))) )) && (parenthesized_expression "((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" ( (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))" ( (binary_expression "*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" (binary_expression "*(int *)((int)puVar30 + iVar40) == 0" (pointer_expression "*(int *)((int)puVar30 + iVar40)" * (cast_expression "(int *)((int)puVar30 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + iVar40)" ( (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) || (parenthesized_expression "(*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" ( (binary_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0" (pointer_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" * (cast_expression "(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) + iVar36)" ( (binary_expression "*(int *)((int)puVar30 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar30 + iVar40)" * (cast_expression "(int *)((int)puVar30 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar30 + iVar40)" ( (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) + identifier) )))) == number_literal) ))) )) ))) )) )) (compound_statement "{\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" { (expression_statement "iVar48 = iVar48 + 1;" (assignment_expression "iVar48 = iVar48 + 1" identifier = (binary_expression "iVar48 + 1" identifier + number_literal)) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) (if_statement "if (uVar28 + 1 == iVar48) goto LAB_00054edc;" if (parenthesized_expression "(uVar28 + 1 == iVar48)" ( (binary_expression "uVar28 + 1 == iVar48" (binary_expression "uVar28 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00054edc;" goto statement_identifier ;)) })) (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (if_statement "if (iVar38 == -1) goto LAB_000550cc;" if (parenthesized_expression "(iVar38 == -1)" ( (binary_expression "iVar38 == -1" identifier == number_literal) )) (goto_statement "goto LAB_000550cc;" goto statement_identifier ;)) (expression_statement "iVar33 = piVar32[-2];" (assignment_expression "iVar33 = piVar32[-2]" identifier = (subscript_expression "piVar32[-2]" identifier [ number_literal ])) ;) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" identifier = (binary_expression "iVar33 * 4" identifier * number_literal)) ;) (if_statement "if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;" if (parenthesized_expression "((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))" ( (binary_expression "(iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" (parenthesized_expression "(iVar47 != *(int *)(iVar31 + iVar40))" ( (binary_expression "iVar47 != *(int *)(iVar31 + iVar40)" identifier != (pointer_expression "*(int *)(iVar31 + iVar40)" * (cast_expression "(int *)(iVar31 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar40)" ( (binary_expression "iVar31 + iVar40" identifier + identifier) ))))) )) || (parenthesized_expression "(piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" ( (comma_expression "piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28" (assignment_expression "piVar32 = piVar32 + -1" identifier = (binary_expression "piVar32 + -1" identifier + number_literal)) , (binary_expression "*(uint *)(iVar17 + iVar40) != uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" * (cast_expression "(uint *)(iVar17 + iVar40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) != identifier)) ))) )) (goto_statement "goto LAB_000550cc;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" identifier = (cast_expression "(undefined4 *)*piVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (if_statement "if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" { (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" ( (pointer_expression "*(code *)PTR___assert_fail_0008de30" * (cast_expression "(code *)PTR___assert_fail_0008de30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" ( (binary_expression "PTR_DAT_0008d800 + -0x4728" identifier + number_literal) , (binary_expression "PTR_DAT_0008d800 + -0x4750" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0008d800 + -0x46e0" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);" statement_identifier : (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;)) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;" (assignment_expression "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17" identifier = (binary_expression "*(int *)(puVar5 + -0x1904) - iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) - identifier)) ;) (if_statement "if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" if (parenthesized_expression "((int)uVar45 <= iVar38)" ( (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (compound_statement "{\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" { (labeled_statement "LAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" ( (pointer_expression "*(code *)PTR___assert_fail_0008de30" * (cast_expression "(code *)PTR___assert_fail_0008de30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" ( (binary_expression "PTR_DAT_0008d800 + -0x4720" identifier + number_literal) , (binary_expression "PTR_DAT_0008d800 + -0x4750" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0008d800 + -0x46e0" identifier + number_literal) ))) ;)) (return_statement "return;" return ;) })) (labeled_statement "LAB_00055104:\n                      uVar35 = 0;" statement_identifier : (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;)) (expression_statement "piVar21 = local_6c;" (assignment_expression "piVar21 = local_6c" identifier = identifier) ;) (do_statement "do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );" do (compound_statement "{\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      }" { (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) (expression_statement "iVar17 = iVar38 + iVar17;" (assignment_expression "iVar17 = iVar38 + iVar17" identifier = (binary_expression "iVar38 + iVar17" identifier + identifier)) ;) (expression_statement "uVar37 = uVar45;" (assignment_expression "uVar37 = uVar45" identifier = identifier) ;) (if_statement "if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" if (parenthesized_expression "(iVar17 < (int)uVar45)" ( (binary_expression "iVar17 < (int)uVar45" identifier < (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" { (labeled_statement "LAB_0005511c:\n                          iVar33 = *(int *)puVar4;" statement_identifier : (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" identifier = (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" * (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" else (compound_statement "{\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" { (do_statement "do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);" do (compound_statement "{\n                            uVar37 = uVar37 << 1;\n                          }" { (expression_statement "uVar37 = uVar37 << 1;" (assignment_expression "uVar37 = uVar37 << 1" identifier = (binary_expression "uVar37 << 1" identifier << number_literal)) ;) }) while (parenthesized_expression "((int)uVar37 <= iVar17)" ( (binary_expression "(int)uVar37 <= iVar17" (cast_expression "(int)uVar37" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) ;) (expression_statement "*(uint *)(puVar7 + -0x2e50) = uVar37;" (assignment_expression "*(uint *)(puVar7 + -0x2e50) = uVar37" (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" if (parenthesized_expression "((*(uint *)puVar8 & 4) != 0)" ( (binary_expression "(*(uint *)puVar8 & 4) != 0" (parenthesized_expression "(*(uint *)puVar8 & 4)" ( (binary_expression "*(uint *)puVar8 & 4" (pointer_expression "*(uint *)puVar8" * (cast_expression "(uint *)puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" { (expression_statement "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);" (call_expression "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_0008de68)" ( (pointer_expression "*(code *)PTR___fprintf_chk_0008de68" * (cast_expression "(code *)PTR___fprintf_chk_0008de68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" ( (pointer_expression "*(undefined4 *)puVar16" * (cast_expression "(undefined4 *)puVar16" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) })) (expression_statement "puVar29 = *(uint **)puVar4;" (assignment_expression "puVar29 = *(uint **)puVar4" identifier = (pointer_expression "*(uint **)puVar4" * (cast_expression "(uint **)puVar4" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" identifier = (call_expression "xrealloc(puVar29)" identifier (argument_list "(puVar29)" ( identifier )))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar29 = *(uint **)puVar14;" (assignment_expression "puVar29 = *(uint **)puVar14" identifier = (pointer_expression "*(uint **)puVar14" * (cast_expression "(uint **)puVar14" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" identifier = (call_expression "xrealloc(puVar29)" identifier (argument_list "(puVar29)" ( identifier )))) ;) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" * (cast_expression "(undefined4 *)puVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar29 = *(uint **)puVar12;" (assignment_expression "puVar29 = *(uint **)puVar12" identifier = (pointer_expression "*(uint **)puVar12" * (cast_expression "(uint **)puVar12" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" if (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" ( (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" ( (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar37 << 2)" ( (binary_expression "uVar37 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar37 >> 0x1e != 0)" ( (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar47 = xrealloc();" (assignment_expression "iVar47 = xrealloc()" identifier = (call_expression "xrealloc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar40 = *(int *)(puVar7 + -0x2e50);" (assignment_expression "iVar40 = *(int *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(int *)(puVar7 + -0x2e50)" * (cast_expression "(int *)(puVar7 + -0x2e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "*(int *)puVar12 = iVar47;" (assignment_expression "*(int *)puVar12 = iVar47" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar40 <= (int)uVar45) goto LAB_0005511c;" if (parenthesized_expression "(iVar40 <= (int)uVar45)" ( (binary_expression "iVar40 <= (int)uVar45" identifier <= (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0005511c;" goto statement_identifier ;)) (expression_statement "iVar36 = uVar45 << 2;" (assignment_expression "iVar36 = uVar45 << 2" identifier = (binary_expression "uVar45 << 2" identifier << number_literal)) ;) (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" identifier = (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar31 = *(int *)puVar14;" (assignment_expression "iVar31 = *(int *)puVar14" identifier = (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (do_statement "do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);" do (compound_statement "{\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          }" { (expression_statement "puVar46 = (undefined4 *)(iVar33 + iVar36);" (assignment_expression "puVar46 = (undefined4 *)(iVar33 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar33 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar36)" ( (binary_expression "iVar33 + iVar36" identifier + identifier) )))) ;) (expression_statement "puVar30 = (undefined4 *)(iVar31 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(iVar31 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar31 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + iVar36)" ( (binary_expression "iVar31 + iVar36" identifier + identifier) )))) ;) (expression_statement "puVar22 = (undefined4 *)(iVar47 + iVar36);" (assignment_expression "puVar22 = (undefined4 *)(iVar47 + iVar36)" identifier = (cast_expression "(undefined4 *)(iVar47 + iVar36)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar36)" ( (binary_expression "iVar47 + iVar36" identifier + identifier) )))) ;) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" identifier = (binary_expression "iVar36 + 4" identifier + number_literal)) ;) (expression_statement "*puVar46 = 0;" (assignment_expression "*puVar46 = 0" (pointer_expression "*puVar46" * identifier) = number_literal) ;) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" * identifier) = number_literal) ;) (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" * identifier) = number_literal) ;) }) while (parenthesized_expression "(iVar40 << 2 != iVar36)" ( (binary_expression "iVar40 << 2 != iVar36" (binary_expression "iVar40 << 2" identifier << number_literal) != identifier) )) ;) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" identifier = (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" * (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) ))))) ;) }))) (if_statement "if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" { (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00055138;" goto statement_identifier ;) })) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" identifier = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (if_statement "if (uVar28 <= uVar35) goto LAB_000552ac;" if (parenthesized_expression "(uVar28 <= uVar35)" ( (binary_expression "uVar28 <= uVar35" identifier <= identifier) )) (goto_statement "goto LAB_000552ac;" goto statement_identifier ;)) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) })) })) })) })) })) })) })) (labeled_statement "LAB_000554fc:\n                    \n  xalloc_die(puVar29);" statement_identifier : (expression_statement "xalloc_die(puVar29);" (call_expression "xalloc_die(puVar29)" identifier (argument_list "(puVar29)" ( identifier ))) ;)) (labeled_statement "LAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);" statement_identifier : (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" identifier = (pointer_expression "*(int **)(puVar7 + -0x18f8)" * (cast_expression "(int **)(puVar7 + -0x18f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + -0x18f8)" ( (binary_expression "puVar7 + -0x18f8" identifier + number_literal) ))))) ;)) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" identifier = (binary_expression "piVar21 + iVar24" identifier + identifier)) ;) (if_statement "if (iVar24 == 0) goto LAB_000552e4;" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000552e4;" goto statement_identifier ;)) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "piVar20 = piVar21;" (assignment_expression "piVar20 = piVar21" identifier = identifier) ;) (do_statement "do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);" do (compound_statement "{\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  }" { (expression_statement "iVar17 = *piVar20;" (assignment_expression "iVar17 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (if_statement "if (iVar17 == iVar38) {\n      bVar1 = false;\n    }" if (parenthesized_expression "(iVar17 == iVar38)" ( (binary_expression "iVar17 == iVar38" identifier == identifier) )) (compound_statement "{\n      bVar1 = false;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) }) while (parenthesized_expression "(piVar34 != piVar20)" ( (binary_expression "piVar34 != piVar20" identifier != identifier) )) ;) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" identifier = (pointer_expression "*(uint *)(puVar7 + -0x2e50)" * (cast_expression "(uint *)(puVar7 + -0x2e50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x2e50)" ( (binary_expression "puVar7 + -0x2e50" identifier + number_literal) ))))) ;) (if_statement "if (bVar1) goto LAB_000552e4;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000552e4;" goto statement_identifier ;)) (labeled_statement "LAB_00055138:\n  iVar38 = iVar38 + 1;" statement_identifier : (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;)) (if_statement "if ((int)uVar45 <= iVar38) goto LAB_00055518;" if (parenthesized_expression "((int)uVar45 <= iVar38)" ( (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) (goto_statement "goto LAB_00055518;" goto statement_identifier ;)) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (goto_statement "goto LAB_00055104;" goto statement_identifier ;) (labeled_statement "LAB_000552e4:\n  cVar39 = *puVar15;" statement_identifier : (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;)) (expression_statement "iVar17 = *(int *)puVar14;" (assignment_expression "iVar17 = *(int *)puVar14" identifier = (pointer_expression "*(int *)puVar14" * (cast_expression "(int *)puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar47 = *(int *)puVar12;" (assignment_expression "iVar47 = *(int *)puVar12" identifier = (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);" do (compound_statement "{\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  }" { (expression_statement "iVar31 = iVar38 + *local_6c;" (assignment_expression "iVar31 = iVar38 + *local_6c" identifier = (binary_expression "iVar38 + *local_6c" identifier + (pointer_expression "*local_6c" * identifier))) ;) (expression_statement "iVar40 = iVar31 * 4;" (assignment_expression "iVar40 = iVar31 * 4" identifier = (binary_expression "iVar31 * 4" identifier * number_literal)) ;) (expression_statement "*(undefined4 *)(iVar33 + iVar40) = *local_64;" (assignment_expression "*(undefined4 *)(iVar33 + iVar40) = *local_64" (pointer_expression "*(undefined4 *)(iVar33 + iVar40)" * (cast_expression "(undefined4 *)(iVar33 + iVar40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar40)" ( (binary_expression "iVar33 + iVar40" identifier + identifier) )))) = (pointer_expression "*local_64" * identifier)) ;) (if_statement "if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" if (parenthesized_expression "((cVar39 != '\0') && (piVar26 != (int *)0x0))" ( (binary_expression "(cVar39 != '\0') && (piVar26 != (int *)0x0)" (parenthesized_expression "(cVar39 != '\0')" ( (binary_expression "cVar39 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" { (expression_statement "*(int *)(iVar17 + iVar40) = piVar26[uVar45];" (assignment_expression "*(int *)(iVar17 + iVar40) = piVar26[uVar45]" (pointer_expression "*(int *)(iVar17 + iVar40)" * (cast_expression "(int *)(iVar17 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar40)" ( (binary_expression "iVar17 + iVar40" identifier + identifier) )))) = (subscript_expression "piVar26[uVar45]" identifier [ identifier ])) ;) })) (expression_statement "iVar36 = *local_6c;" (assignment_expression "iVar36 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "local_6c = local_6c + 1;" (assignment_expression "local_6c = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar47 + iVar40) = iVar36;" (assignment_expression "*(int *)(iVar47 + iVar40) = iVar36" (pointer_expression "*(int *)(iVar47 + iVar40)" * (cast_expression "(int *)(iVar47 + iVar40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + iVar40)" ( (binary_expression "iVar47 + iVar40" identifier + identifier) )))) = identifier) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 < uVar28)" ( (binary_expression "uVar45 < uVar28" identifier < identifier) )) ;) (expression_statement "iVar17 = *(int *)(puVar5 + -0x1904);" (assignment_expression "iVar17 = *(int *)(puVar5 + -0x1904)" identifier = (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)(iVar33 + iVar17 * 4);" (assignment_expression "piVar20 = (int *)(iVar33 + iVar17 * 4)" identifier = (cast_expression "(int *)(iVar33 + iVar17 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + iVar17 * 4)" ( (binary_expression "iVar33 + iVar17 * 4" identifier + (binary_expression "iVar17 * 4" identifier * number_literal)) )))) ;) (if_statement "if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" if (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) (compound_statement "{\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" { (do_statement "do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);" do (compound_statement "{\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "piVar26 = piVar20 + 1;" (assignment_expression "piVar26 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" identifier = (binary_expression "piVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*piVar26 != 0)" ( (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" * identifier) != number_literal) )) ;) (expression_statement "*(int *)(puVar5 + -0x1904) = iVar17;" (assignment_expression "*(int *)(puVar5 + -0x1904) = iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" * (cast_expression "(int *)(puVar5 + -0x1904)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1904)" ( (binary_expression "puVar5 + -0x1904" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" identifier = (pointer_expression "*(int *)(puVar2 + -0x18e4)" * (cast_expression "(int *)(puVar2 + -0x18e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + -0x18e4)" ( (binary_expression "puVar2 + -0x18e4" identifier + number_literal) ))))) ;) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" identifier = (pointer_expression "*(int **)(puVar6 + -0x18f0)" * (cast_expression "(int **)(puVar6 + -0x18f0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + -0x18f0)" ( (binary_expression "puVar6 + -0x18f0" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" identifier = (cast_expression "(int *)((int)local_6c + iVar24 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + iVar24 * 4)" ( (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar24 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" identifier = (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" * (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18d8)" ( (binary_expression "puVar2 + -0x18d8" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" * (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18dc)" ( (binary_expression "puVar2 + -0x18dc" identifier + number_literal) ))))) ;) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" identifier = (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" * (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + -0x18e0)" ( (binary_expression "puVar2 + -0x18e0" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }" if (parenthesized_expression "(*(int *)puVar11 < iVar31)" ( (binary_expression "*(int *)puVar11 < iVar31" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) )) (compound_statement "{\n    *(int *)puVar11 = iVar31;\n  }" { (expression_statement "*(int *)puVar11 = iVar31;" (assignment_expression "*(int *)puVar11 = iVar31" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (labeled_statement "LAB_00054f00:\n  iVar24 = iVar24 + 1;" statement_identifier : (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;)) (expression_statement "*piVar34 = iVar38;" (assignment_expression "*piVar34 = iVar38" (pointer_expression "*piVar34" * identifier) = identifier) ;) (expression_statement "iVar40 = *(int *)(puVar6 + -0x18f4);" (assignment_expression "iVar40 = *(int *)(puVar6 + -0x18f4)" identifier = (pointer_expression "*(int *)(puVar6 + -0x18f4)" * (cast_expression "(int *)(puVar6 + -0x18f4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + -0x18f4)" ( (binary_expression "puVar6 + -0x18f4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar47 + *piVar20 * 4) = iVar38;" (assignment_expression "*(int *)(iVar47 + *piVar20 * 4) = iVar38" (pointer_expression "*(int *)(iVar47 + *piVar20 * 4)" * (cast_expression "(int *)(iVar47 + *piVar20 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar47 + *piVar20 * 4)" ( (binary_expression "iVar47 + *piVar20 * 4" identifier + (binary_expression "*piVar20 * 4" (pointer_expression "*piVar20" * identifier) * number_literal)) )))) = identifier) ;) (if_statement "if (iVar40 <= iVar24) goto LAB_00054f28;" if (parenthesized_expression "(iVar40 <= iVar24)" ( (binary_expression "iVar40 <= iVar24" identifier <= identifier) )) (goto_statement "goto LAB_00054f28;" goto statement_identifier ;)) (goto_statement "goto LAB_00054d58;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) * LIT) + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (unary_expression ~ (pointer_expression * IDENT)) * LIT)) + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression (subscript_expression IDENT [ IDENT ]) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) - IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT)) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) * LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) < IDENT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ IDENT ])) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) < IDENT)) ))) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))) == (binary_expression IDENT + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == IDENT)) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + IDENT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + IDENT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) )))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) + IDENT) )))) == LIT) ))) )) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != IDENT)) ))) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) })) })) })) (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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) })) })) })) })) })) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (subscript_expression IDENT [ IDENT ])) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void tables_generate(void)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    \n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" (primitive_type "void") (function_declarator "tables_generate(void)" (identifier "tables_generate") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  int iVar17;\n  undefined4 uVar18;\n  code *pcVar19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *puVar22;\n  undefined *puVar23;\n  int iVar24;\n  uint *puVar25;\n  int *piVar26;\n  undefined4 uVar27;\n  uint uVar28;\n  uint *puVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  int *piVar32;\n  int iVar33;\n  int *piVar34;\n  uint uVar35;\n  int iVar36;\n  uint uVar37;\n  int iVar38;\n  char cVar39;\n  int iVar40;\n  int iVar41;\n  undefined4 *puVar42;\n  undefined4 *puVar43;\n  undefined4 *puVar44;\n  uint uVar45;\n  undefined4 *puVar46;\n  int iVar47;\n  int iVar48;\n  int *local_6c;\n  undefined4 *local_64;\n  \n  puVar13 = PTR_nvectors_0008da54;\n  puVar6 = PTR_nvars_0008d808;\n  puVar9 = PTR_nstates_0008d698;\n  puVar2 = PTR_DAT_0008d618;\n  iVar24 = *(int *)PTR_nvars_0008d808;\n  iVar17 = *(int *)PTR_nstates_0008d698;\n  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;\n  uVar18 = xcalloc(iVar17 + iVar24,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar27 = *(undefined4 *)puVar13;\n  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;\n  uVar18 = xcalloc(uVar27,4);\n  uVar28 = *(uint *)puVar13;\n  puVar29 = (uint *)(uVar28 << 2);\n  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;\n  puVar15 = PTR_nondeterministic_parser_0008da74;\n  puVar3 = PTR_DAT_0008d618;\n  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_000554fc:\n                    \n  xalloc_die(puVar29);\nLAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);\n  piVar34 = piVar21 + iVar24;\n  if (iVar24 == 0) goto LAB_000552e4;\n  bVar1 = true;\n  piVar20 = piVar21;\n  do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);\n  uVar45 = *(uint *)(puVar7 + -0x2e50);\n  if (bVar1) goto LAB_000552e4;\nLAB_00055138:\n  iVar38 = iVar38 + 1;\n  if ((int)uVar45 <= iVar38) goto LAB_00055518;\n  iVar17 = *local_6c;\n  goto LAB_00055104;\nLAB_000552e4:\n  cVar39 = *puVar15;\n  iVar17 = *(int *)puVar14;\n  iVar47 = *(int *)puVar12;\n  uVar45 = 0;\n  do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);\n  iVar17 = *(int *)(puVar5 + -0x1904);\n  piVar20 = (int *)(iVar33 + iVar17 * 4);\n  if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }\n  iVar17 = *(int *)(puVar2 + -0x18e4);\n  local_6c = *(int **)(puVar6 + -0x18f0);\n  piVar20 = (int *)((int)local_6c + iVar24 * 4);\n  iVar47 = *(int *)puVar10;\n  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n  if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }\nLAB_00054f00:\n  iVar24 = iVar24 + 1;\n  *piVar34 = iVar38;\n  iVar40 = *(int *)(puVar6 + -0x18f4);\n  *(int *)(iVar47 + *piVar20 * 4) = iVar38;\n  if (iVar40 <= iVar24) goto LAB_00054f28;\n  goto LAB_00054d58;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined *puVar14;" (type_identifier "undefined") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "code *pcVar19;" (type_identifier "code") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "uint *puVar25;" (type_identifier "uint") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "int *piVar26;" (primitive_type "int") (pointer_declarator "*piVar26" (* "*") (identifier "piVar26")) (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "uint *puVar29;" (type_identifier "uint") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "undefined4 *puVar30;" (type_identifier "undefined4") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "int *piVar32;" (primitive_type "int") (pointer_declarator "*piVar32" (* "*") (identifier "piVar32")) (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "int *piVar34;" (primitive_type "int") (pointer_declarator "*piVar34" (* "*") (identifier "piVar34")) (; ";")) (declaration "uint uVar35;" (type_identifier "uint") (identifier "uVar35") (; ";")) (declaration "int iVar36;" (primitive_type "int") (identifier "iVar36") (; ";")) (declaration "uint uVar37;" (type_identifier "uint") (identifier "uVar37") (; ";")) (declaration "int iVar38;" (primitive_type "int") (identifier "iVar38") (; ";")) (declaration "char cVar39;" (primitive_type "char") (identifier "cVar39") (; ";")) (declaration "int iVar40;" (primitive_type "int") (identifier "iVar40") (; ";")) (declaration "int iVar41;" (primitive_type "int") (identifier "iVar41") (; ";")) (declaration "undefined4 *puVar42;" (type_identifier "undefined4") (pointer_declarator "*puVar42" (* "*") (identifier "puVar42")) (; ";")) (declaration "undefined4 *puVar43;" (type_identifier "undefined4") (pointer_declarator "*puVar43" (* "*") (identifier "puVar43")) (; ";")) (declaration "undefined4 *puVar44;" (type_identifier "undefined4") (pointer_declarator "*puVar44" (* "*") (identifier "puVar44")) (; ";")) (declaration "uint uVar45;" (type_identifier "uint") (identifier "uVar45") (; ";")) (declaration "undefined4 *puVar46;" (type_identifier "undefined4") (pointer_declarator "*puVar46" (* "*") (identifier "puVar46")) (; ";")) (declaration "int iVar47;" (primitive_type "int") (identifier "iVar47") (; ";")) (declaration "int iVar48;" (primitive_type "int") (identifier "iVar48") (; ";")) (declaration "int *local_6c;" (primitive_type "int") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "undefined4 *local_64;" (type_identifier "undefined4") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (expression_statement "puVar13 = PTR_nvectors_0008da54;" (assignment_expression "puVar13 = PTR_nvectors_0008da54" (identifier "puVar13") (= "=") (identifier "PTR_nvectors_0008da54")) (; ";")) (expression_statement "puVar6 = PTR_nvars_0008d808;" (assignment_expression "puVar6 = PTR_nvars_0008d808" (identifier "puVar6") (= "=") (identifier "PTR_nvars_0008d808")) (; ";")) (expression_statement "puVar9 = PTR_nstates_0008d698;" (assignment_expression "puVar9 = PTR_nstates_0008d698" (identifier "puVar9") (= "=") (identifier "PTR_nstates_0008d698")) (; ";")) (expression_statement "puVar2 = PTR_DAT_0008d618;" (assignment_expression "puVar2 = PTR_DAT_0008d618" (identifier "puVar2") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "iVar24 = *(int *)PTR_nvars_0008d808;" (assignment_expression "iVar24 = *(int *)PTR_nvars_0008d808" (identifier "iVar24") (= "=") (pointer_expression "*(int *)PTR_nvars_0008d808" (* "*") (cast_expression "(int *)PTR_nvars_0008d808" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nvars_0008d808")))) (; ";")) (expression_statement "iVar17 = *(int *)PTR_nstates_0008d698;" (assignment_expression "iVar17 = *(int *)PTR_nstates_0008d698" (identifier "iVar17") (= "=") (pointer_expression "*(int *)PTR_nstates_0008d698" (* "*") (cast_expression "(int *)PTR_nstates_0008d698" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nstates_0008d698")))) (; ";")) (expression_statement "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;" (assignment_expression "*(int *)PTR_nvectors_0008da54 = iVar17 + iVar24" (pointer_expression "*(int *)PTR_nvectors_0008da54" (* "*") (cast_expression "(int *)PTR_nvectors_0008da54" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nvectors_0008da54"))) (= "=") (binary_expression "iVar17 + iVar24" (identifier "iVar17") (+ "+") (identifier "iVar24"))) (; ";")) (expression_statement "uVar18 = xcalloc(iVar17 + iVar24,4);" (assignment_expression "uVar18 = xcalloc(iVar17 + iVar24,4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(iVar17 + iVar24,4)" (identifier "xcalloc") (argument_list "(iVar17 + iVar24,4)" (( "(") (binary_expression "iVar17 + iVar24" (identifier "iVar17") (+ "+") (identifier "iVar24")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x18d8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18d8) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18d8)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x18d8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(uVar27,4)" (identifier "xcalloc") (argument_list "(uVar27,4)" (( "(") (identifier "uVar27") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x18dc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18dc) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18dc)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x18dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18dc)" (( "(") (binary_expression "puVar2 + -0x18dc" (identifier "puVar2") (+ "+") (number_literal "-0x18dc")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(uVar27,4)" (identifier "xcalloc") (argument_list "(uVar27,4)" (( "(") (identifier "uVar27") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)puVar13;" (assignment_expression "uVar27 = *(undefined4 *)puVar13" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x18e0) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e0) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e0)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x18e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e0)" (( "(") (binary_expression "puVar2 + -0x18e0" (identifier "puVar2") (+ "+") (number_literal "-0x18e0")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(uVar27,4)" (identifier "xcalloc") (argument_list "(uVar27,4)" (( "(") (identifier "uVar27") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)puVar13" (* "*") (cast_expression "(uint *)puVar13" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 << 2)" (( "(") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar2 + -0x18e4) = uVar18;" (assignment_expression "*(undefined4 *)(puVar2 + -0x18e4) = uVar18" (pointer_expression "*(undefined4 *)(puVar2 + -0x18e4)" (* "*") (cast_expression "(undefined4 *)(puVar2 + -0x18e4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar15 = PTR_nondeterministic_parser_0008da74;" (assignment_expression "puVar15 = PTR_nondeterministic_parser_0008da74" (identifier "puVar15") (= "=") (identifier "PTR_nondeterministic_parser_0008da74")) (; ";")) (expression_statement "puVar3 = PTR_DAT_0008d618;" (assignment_expression "puVar3 = PTR_DAT_0008d618" (identifier "puVar3") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar18 = xmalloc();\n    cVar39 = *puVar15;\n    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;\n    iVar17 = 0;\n    if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }\n    puVar7 = PTR_yydefact_0008d968;\n    puVar10 = PTR_ntokens_0008d77c;\n    puVar29 = (uint *)(*(uint *)puVar9 << 2);\n    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" (identifier "cVar39") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + -0x18e8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar3 + -0x18e8) = uVar18" (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar39 != '\0') {\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" (if "if") (parenthesized_expression "(cVar39 != '\0')" (( "(") (binary_expression "cVar39 != '\0'" (identifier "cVar39") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();\n    }" ({ "{") (expression_statement "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();" (assignment_expression "iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)()" (identifier "iVar17") (= "=") (call_expression "(*(code *)PTR_conflicts_total_count_0008dce4)()" (parenthesized_expression "(*(code *)PTR_conflicts_total_count_0008dce4)" (( "(") (pointer_expression "*(code *)PTR_conflicts_total_count_0008dce4" (* "*") (cast_expression "(code *)PTR_conflicts_total_count_0008dce4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conflicts_total_count_0008dce4"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "puVar7 = PTR_yydefact_0008d968;" (assignment_expression "puVar7 = PTR_yydefact_0008d968" (identifier "puVar7") (= "=") (identifier "PTR_yydefact_0008d968")) (; ";")) (expression_statement "puVar10 = PTR_ntokens_0008d77c;" (assignment_expression "puVar10 = PTR_ntokens_0008d77c" (identifier "puVar10") (= "=") (identifier "PTR_ntokens_0008d77c")) (; ";")) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(*(uint *)puVar9 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)puVar9 << 2)" (( "(") (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" (* "*") (cast_expression "(uint *)puVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" (( "(") (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" (* "*") (cast_expression "(uint *)puVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar18 = xmalloc();\n      uVar28 = *(uint *)puVar10;\n      *(undefined4 *)puVar7 = uVar18;\n      puVar4 = PTR_DAT_0008d618;\n      puVar29 = (uint *)(uVar28 << 2);\n      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)puVar10" (* "*") (cast_expression "(uint *)puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "*(undefined4 *)puVar7 = uVar18;" (assignment_expression "*(undefined4 *)puVar7 = uVar18" (pointer_expression "*(undefined4 *)puVar7" (* "*") (cast_expression "(undefined4 *)puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar4 = PTR_DAT_0008d618;" (assignment_expression "puVar4 = PTR_DAT_0008d618" (identifier "puVar4") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 << 2)" (( "(") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        uVar18 = xmalloc();\n        uVar28 = *(uint *)puVar10;\n        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;\n        puVar5 = PTR_DAT_0008d618;\n        puVar29 = (uint *)(uVar28 << 2);\n        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar28 = *(uint *)puVar10;" (assignment_expression "uVar28 = *(uint *)puVar10" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)puVar10" (* "*") (cast_expression "(uint *)puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "*(undefined4 *)(puVar4 + -0x18ec) = uVar18;" (assignment_expression "*(undefined4 *)(puVar4 + -0x18ec) = uVar18" (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" (* "*") (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" (identifier "puVar5") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 << 2)" (( "(") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uVar18 = xmalloc();\n          uVar28 = iVar17 * 2 + 1;\n          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;\n          puVar29 = (uint *)(uVar28 * 4);\n          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar28 = iVar17 * 2 + 1;" (assignment_expression "uVar28 = iVar17 * 2 + 1" (identifier "uVar28") (= "=") (binary_expression "iVar17 * 2 + 1" (binary_expression "iVar17 * 2" (identifier "iVar17") (* "*") (number_literal "2")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + -0x18fc) = uVar18;" (assignment_expression "*(undefined4 *)(puVar5 + -0x18fc) = uVar18" (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x18fc)" (( "(") (binary_expression "puVar5 + -0x18fc" (identifier "puVar5") (+ "+") (number_literal "-0x18fc")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 * 4);" (assignment_expression "puVar29 = (uint *)(uVar28 * 4)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 * 4)" (( "(") (binary_expression "uVar28 * 4" (identifier "uVar28") (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            uVar18 = xmalloc();\n            cVar39 = *puVar15;\n            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;\n            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;\n            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;\n            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }\n            puVar12 = PTR_states_0008d7f8;\n            puVar11 = PTR_rules_0008d784;\n            if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));\n            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));\n            puVar29 = (uint *)(*(uint *)puVar9 << 2);\n            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" (identifier "cVar39") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18;" (assignment_expression "*(undefined4 *)PTR_conflict_list_0008da68 = uVar18" (pointer_expression "*(undefined4 *)PTR_conflict_list_0008da68" (* "*") (cast_expression "(undefined4 *)PTR_conflict_list_0008da68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conflict_list_0008da68"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;" (assignment_expression "*(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2" (pointer_expression "*(int *)(PTR_DAT_0008d618 + -0x1900)" (* "*") (cast_expression "(int *)(PTR_DAT_0008d618 + -0x1900)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0008d618 + -0x1900)" (( "(") (binary_expression "PTR_DAT_0008d618 + -0x1900" (identifier "PTR_DAT_0008d618") (+ "+") (number_literal "-0x1900")) () ")")))) (= "=") (binary_expression "iVar17 * 2" (identifier "iVar17") (* "*") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;" (assignment_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1" (pointer_expression "*(undefined4 *)PTR_conflict_list_cnt_0008da6c" (* "*") (cast_expression "(undefined4 *)PTR_conflict_list_cnt_0008da6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_conflict_list_cnt_0008da6c"))) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" (if "if") (parenthesized_expression "((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8))" (( "(") (binary_expression "(cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)" (parenthesized_expression "(cVar39 == '\0')" (( "(") (binary_expression "cVar39 == '\0'" (identifier "cVar39") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(0 < *(int *)PTR_nrules_0008d7c8)" (( "(") (binary_expression "0 < *(int *)PTR_nrules_0008d7c8" (number_literal "0") (< "<") (pointer_expression "*(int *)PTR_nrules_0008d7c8" (* "*") (cast_expression "(int *)PTR_nrules_0008d7c8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nrules_0008d7c8")))) () ")"))) () ")")) (compound_statement "{\n              iVar17 = *(int *)PTR_rules_0008d784;\n              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;\n              do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);\n            }" ({ "{") (expression_statement "iVar17 = *(int *)PTR_rules_0008d784;" (assignment_expression "iVar17 = *(int *)PTR_rules_0008d784" (identifier "iVar17") (= "=") (pointer_expression "*(int *)PTR_rules_0008d784" (* "*") (cast_expression "(int *)PTR_rules_0008d784" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_rules_0008d784")))) (; ";")) (expression_statement "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;" (assignment_expression "iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" (identifier "iVar24") (= "=") (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17" (binary_expression "*(int *)PTR_nrules_0008d7c8 * 0x60" (pointer_expression "*(int *)PTR_nrules_0008d7c8" (* "*") (cast_expression "(int *)PTR_nrules_0008d7c8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nrules_0008d7c8"))) (* "*") (number_literal "0x60")) (+ "+") (identifier "iVar17"))) (; ";")) (do_statement "do {\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              } while (iVar24 != iVar17);" (do "do") (compound_statement "{\n                *(undefined1 *)(iVar17 + 0x38) = 0;\n                iVar17 = iVar17 + 0x60;\n              }" ({ "{") (expression_statement "*(undefined1 *)(iVar17 + 0x38) = 0;" (assignment_expression "*(undefined1 *)(iVar17 + 0x38) = 0" (pointer_expression "*(undefined1 *)(iVar17 + 0x38)" (* "*") (cast_expression "(undefined1 *)(iVar17 + 0x38)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x38)" (( "(") (binary_expression "iVar17 + 0x38" (identifier "iVar17") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = iVar17 + 0x60;" (assignment_expression "iVar17 = iVar17 + 0x60" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 0x60" (identifier "iVar17") (+ "+") (number_literal "0x60"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != iVar17)" (( "(") (binary_expression "iVar24 != iVar17" (identifier "iVar24") (!= "!=") (identifier "iVar17")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar12 = PTR_states_0008d7f8;" (assignment_expression "puVar12 = PTR_states_0008d7f8" (identifier "puVar12") (= "=") (identifier "PTR_states_0008d7f8")) (; ";")) (expression_statement "puVar11 = PTR_rules_0008d784;" (assignment_expression "puVar11 = PTR_rules_0008d784" (identifier "puVar11") (= "=") (identifier "PTR_rules_0008d784")) (; ";")) (if_statement "if (0 < *(int *)puVar9) {\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" (if "if") (parenthesized_expression "(0 < *(int *)puVar9)" (( "(") (binary_expression "0 < *(int *)puVar9" (number_literal "0") (< "<") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n              iVar17 = 0;\n              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);\n              do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);\n            }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);" (assignment_expression "pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0)" (identifier "pcVar19") (= "=") (cast_expression "(code *)(PTR_LAB_0008dc84 + 0x3af0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0008dc84 + 0x3af0)" (( "(") (binary_expression "PTR_LAB_0008dc84 + 0x3af0" (identifier "PTR_LAB_0008dc84") (+ "+") (number_literal "0x3af0")) () ")")))) (; ";")) (do_statement "do {\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              } while (iVar17 < *(int *)puVar9);" (do "do") (compound_statement "{\n                iVar47 = iVar17 * 4;\n                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));\n                if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }\nLAB_00054640:\n                iVar17 = iVar17 + 1;\n              }" ({ "{") (expression_statement "iVar47 = iVar17 * 4;" (assignment_expression "iVar47 = iVar17 * 4" (identifier "iVar47") (= "=") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));" (assignment_expression "iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" (identifier "iVar24") (= "=") (call_expression "(*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47))" (parenthesized_expression "(*pcVar19)" (( "(") (pointer_expression "*pcVar19" (* "*") (identifier "pcVar19")) () ")")) (argument_list "(*(undefined4 *)(*(int *)puVar12 + iVar47))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)puVar12 + iVar47)" (* "*") (cast_expression "(undefined4 *)(*(int *)puVar12 + iVar47)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar12 + iVar47)" (( "(") (binary_expression "*(int *)puVar12 + iVar47" (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (+ "+") (identifier "iVar47")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar24 == 0) {\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }\n                else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar24 = 0;\n                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;\n                  iVar38 = *(int *)puVar10;\n                  puVar25 = *(uint **)(puVar4 + -0x18ec);\n                  if (iVar38 < 1) goto LAB_0005508c;\nLAB_00054494:\n                  uVar28 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);\n                  if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }\n                }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0;" (assignment_expression "*(undefined4 *)(*(int *)puVar7 + iVar47) = 0" (pointer_expression "*(undefined4 *)(*(int *)puVar7 + iVar47)" (* "*") (cast_expression "(undefined4 *)(*(int *)puVar7 + iVar47)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar7 + iVar47)" (( "(") (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (+ "+") (identifier "iVar47")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" (identifier "iVar38") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" (identifier "puVar25") (= "=") (pointer_expression "*(uint **)(puVar4 + -0x18ec)" (* "*") (cast_expression "(uint **)(puVar4 + -0x18ec)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")"))))) (; ";")) (if_statement "if (iVar38 < 1) goto LAB_0005508c;" (if "if") (parenthesized_expression "(iVar38 < 1)" (( "(") (binary_expression "iVar38 < 1" (identifier "iVar38") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_0005508c;" (goto "goto") (statement_identifier "LAB_0005508c") (; ";"))) (labeled_statement "LAB_00054494:\n                  uVar28 = 0;" (statement_identifier "LAB_00054494") (: ":") (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" (identifier "puVar29") (= "=") (identifier "puVar25")) (; ";")) (do_statement "do {\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  } while (puVar25 + iVar38 != puVar29);" (do "do") (compound_statement "{\n                    if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }\n                    puVar29 = puVar29 + 1;\n                  }" ({ "{") (if_statement "if (*puVar29 != 0) {\n                      uVar28 = uVar28 + 1;\n                    }" (if "if") (parenthesized_expression "(*puVar29 != 0)" (( "(") (binary_expression "*puVar29 != 0" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar28 = uVar28 + 1;\n                    }" ({ "{") (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" (identifier "uVar28") (= "=") (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" (identifier "puVar29") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 + iVar38 != puVar29)" (( "(") (binary_expression "puVar25 + iVar38 != puVar29" (binary_expression "puVar25 + iVar38" (identifier "puVar25") (+ "+") (identifier "iVar38")) (!= "!=") (identifier "puVar29")) () ")")) (; ";")) (if_statement "if (uVar28 == 0) {\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }\n                  else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*puVar15 == '\0') goto LAB_00054984;\n                  }" ({ "{") (if_statement "if (*puVar15 == '\0') goto LAB_00054984;" (if "if") (parenthesized_expression "(*puVar15 == '\0')" (( "(") (binary_expression "*puVar15 == '\0'" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00054984;" (goto "goto") (statement_identifier "LAB_00054984") (; ";"))) (} "}")) (else_clause "else {\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" (else "else") (compound_statement "{\n                    iVar24 = uVar28 << 2;\n                    iVar38 = *(int *)(puVar2 + -0x18d8);\n                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;\n                    piVar20 = (int *)xmalloc(iVar24);\n                    *(int **)(iVar38 + iVar47) = piVar20;\n                    iVar38 = *(int *)(puVar2 + -0x18dc);\n                    piVar21 = (int *)xmalloc(iVar24);\n                    cVar39 = *puVar15;\n                    *(int **)(iVar38 + iVar47) = piVar21;\n                    if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }\n                    iVar24 = *(int *)puVar10;\n                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;\n                    if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }\n                    iVar24 = *(int *)(puVar3 + -0x18e8);\n                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);\n                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;\n                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;\n                    if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }\n                  }" ({ "{") (expression_statement "iVar24 = uVar28 << 2;" (assignment_expression "iVar24 = uVar28 << 2" (identifier "iVar24") (= "=") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18d8)" (* "*") (cast_expression "(int *)(puVar2 + -0x18d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")"))))) (; ";")) (if_statement "if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;" (if "if") (parenthesized_expression "((iVar24 < 0) || (uVar28 >> 0x1e != 0))" (( "(") (binary_expression "(iVar24 < 0) || (uVar28 >> 0x1e != 0)" (parenthesized_expression "(iVar24 < 0)" (( "(") (binary_expression "iVar24 < 0" (identifier "iVar24") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar28 >> 0x1e != 0)" (( "(") (binary_expression "uVar28 >> 0x1e != 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000554fc;" (goto "goto") (statement_identifier "LAB_000554fc") (; ";"))) (expression_statement "piVar20 = (int *)xmalloc(iVar24);" (assignment_expression "piVar20 = (int *)xmalloc(iVar24)" (identifier "piVar20") (= "=") (cast_expression "(int *)xmalloc(iVar24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar24)" (identifier "xmalloc") (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))))) (; ";")) (expression_statement "*(int **)(iVar38 + iVar47) = piVar20;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar20" (pointer_expression "*(int **)(iVar38 + iVar47)" (* "*") (cast_expression "(int **)(iVar38 + iVar47)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar38 + iVar47)" (( "(") (binary_expression "iVar38 + iVar47" (identifier "iVar38") (+ "+") (identifier "iVar47")) () ")")))) (= "=") (identifier "piVar20")) (; ";")) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18dc)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18dc)" (* "*") (cast_expression "(int *)(puVar2 + -0x18dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18dc)" (( "(") (binary_expression "puVar2 + -0x18dc" (identifier "puVar2") (+ "+") (number_literal "-0x18dc")) () ")"))))) (; ";")) (expression_statement "piVar21 = (int *)xmalloc(iVar24);" (assignment_expression "piVar21 = (int *)xmalloc(iVar24)" (identifier "piVar21") (= "=") (cast_expression "(int *)xmalloc(iVar24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar24)" (identifier "xmalloc") (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))))) (; ";")) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" (identifier "cVar39") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "*(int **)(iVar38 + iVar47) = piVar21;" (assignment_expression "*(int **)(iVar38 + iVar47) = piVar21" (pointer_expression "*(int **)(iVar38 + iVar47)" (* "*") (cast_expression "(int **)(iVar38 + iVar47)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar38 + iVar47)" (( "(") (binary_expression "iVar38 + iVar47" (identifier "iVar38") (+ "+") (identifier "iVar47")) () ")")))) (= "=") (identifier "piVar21")) (; ";")) (if_statement "if (cVar39 == '\0') {\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }\n                    else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" (if "if") (parenthesized_expression "(cVar39 == '\0')" (( "(") (binary_expression "cVar39 == '\0'" (identifier "cVar39") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      puVar22 = (undefined4 *)0x0;\n                      cVar39 = '\0';\n                    }" ({ "{") (expression_statement "puVar22 = (undefined4 *)0x0;" (assignment_expression "puVar22 = (undefined4 *)0x0" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "cVar39 = '\0';" (assignment_expression "cVar39 = '\0'" (identifier "cVar39") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" (else "else") (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc(iVar24);\n                      cVar39 = *puVar15;\n                    }" ({ "{") (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar24);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar24)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)xmalloc(iVar24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar24)" (identifier "xmalloc") (argument_list "(iVar24)" (( "(") (identifier "iVar24") () ")"))))) (; ";")) (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" (identifier "cVar39") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (} "}")))) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" (identifier "iVar24") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;" (assignment_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22" (pointer_expression "*(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" (* "*") (cast_expression "(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar2 + -0x18e0) + iVar47)" (( "(") (binary_expression "*(int *)(puVar2 + -0x18e0) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e0)" (* "*") (cast_expression "(int *)(puVar2 + -0x18e0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e0)" (( "(") (binary_expression "puVar2 + -0x18e0" (identifier "puVar2") (+ "+") (number_literal "-0x18e0")) () ")")))) (+ "+") (identifier "iVar47")) () ")")))) (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (0 < iVar24) {\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" (if "if") (parenthesized_expression "(0 < iVar24)" (( "(") (binary_expression "0 < iVar24" (number_literal "0") (< "<") (identifier "iVar24")) () ")")) (compound_statement "{\n                      piVar26 = *(int **)(puVar4 + -0x18ec);\n                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);\n                      iVar38 = 0;\nLAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);\n                    }" ({ "{") (expression_statement "piVar26 = *(int **)(puVar4 + -0x18ec);" (assignment_expression "piVar26 = *(int **)(puVar4 + -0x18ec)" (identifier "piVar26") (= "=") (pointer_expression "*(int **)(puVar4 + -0x18ec)" (* "*") (cast_expression "(int **)(puVar4 + -0x18ec)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")"))))) (; ";")) (expression_statement "puVar30 = *(undefined4 **)(puVar5 + -0x18fc);" (assignment_expression "puVar30 = *(undefined4 **)(puVar5 + -0x18fc)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined4 **)(puVar5 + -0x18fc)" (* "*") (cast_expression "(undefined4 **)(puVar5 + -0x18fc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar5 + -0x18fc)" (( "(") (binary_expression "puVar5 + -0x18fc" (identifier "puVar5") (+ "+") (number_literal "-0x18fc")) () ")"))))) (; ";")) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000545c4:\n                      do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" (statement_identifier "LAB_000545c4") (: ":") (do_statement "do {\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      } while (iVar38 != iVar24);" (do "do") (compound_statement "{\n                        puVar46 = puVar22;\n                        if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }\n                        iVar38 = iVar38 + 1;\n                        piVar26 = piVar26 + 1;\n                        puVar30 = puVar30 + 1;\n                        puVar22 = puVar46;\n                      }" ({ "{") (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" (identifier "puVar46") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (*piVar26 != 0) {\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" (if "if") (parenthesized_expression "(*piVar26 != 0)" (( "(") (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          *piVar20 = iVar38;\n                          piVar20 = piVar20 + 1;\n                          *piVar21 = *piVar26;\n                          if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }\n                          puVar46 = puVar22 + 1;\n                          *puVar22 = *puVar30;\n                          piVar21 = piVar21 + 1;\n                        }" ({ "{") (expression_statement "*piVar20 = iVar38;" (assignment_expression "*piVar20 = iVar38" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (= "=") (identifier "iVar38")) (; ";")) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar21 = *piVar26;" (assignment_expression "*piVar21 = *piVar26" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (pointer_expression "*piVar26" (* "*") (identifier "piVar26"))) (; ";")) (if_statement "if (cVar39 == '\0') {\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" (if "if") (parenthesized_expression "(cVar39 == '\0')" (( "(") (binary_expression "cVar39 == '\0'" (identifier "cVar39") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                            iVar38 = iVar38 + 1;\n                            piVar26 = piVar26 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar21 + 1;\n                            if (iVar38 == iVar24) break;\n                            goto LAB_000545c4;\n                          }" ({ "{") (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 1" (identifier "puVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar38 == iVar24) break;" (if "if") (parenthesized_expression "(iVar38 == iVar24)" (( "(") (binary_expression "iVar38 == iVar24" (identifier "iVar38") (== "==") (identifier "iVar24")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000545c4;" (goto "goto") (statement_identifier "LAB_000545c4") (; ";")) (} "}"))) (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" (identifier "puVar46") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*puVar30" (* "*") (identifier "puVar30"))) (; ";")) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 1" (identifier "puVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" (identifier "puVar22") (= "=") (identifier "puVar46")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar38 != iVar24)" (( "(") (binary_expression "iVar38 != iVar24" (identifier "iVar38") (!= "!=") (identifier "iVar24")) () ")")) (; ";"))) (} "}"))) (expression_statement "iVar24 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar24 = *(int *)(puVar3 + -0x18e8)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(int *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")"))))) (; ";")) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" (* "*") (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar47)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar47)" (( "(") (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18d8)" (* "*") (cast_expression "(int *)(puVar2 + -0x18d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")")))) (+ "+") (identifier "iVar47")) () ")"))))) (; ";")) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" (* "*") (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar47)" (( "(") (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar47" (pointer_expression "*(int *)(puVar2 + -0x18e4)" (* "*") (cast_expression "(int *)(puVar2 + -0x18e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")")))) (+ "+") (identifier "iVar47")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar24 + iVar47)" (* "*") (cast_expression "(int *)(iVar24 + iVar47)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + iVar47)" (( "(") (binary_expression "iVar24 + iVar47" (identifier "iVar24") (+ "+") (identifier "iVar47")) () ")")))) (= "=") (binary_expression "(piVar20[-1] - *piVar21) + 1" (parenthesized_expression "(piVar20[-1] - *piVar21)" (( "(") (binary_expression "piVar20[-1] - *piVar21" (subscript_expression "piVar20[-1]" (identifier "piVar20") ([ "[") (number_literal "-1") (] "]")) (- "-") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar39 == '\0') {\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" (if "if") (parenthesized_expression "(cVar39 == '\0')" (( "(") (binary_expression "cVar39 == '\0'" (identifier "cVar39") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      iVar38 = *(int *)puVar10;\n                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);\n                      if (iVar38 < 1) goto LAB_000549cc;\n                      puVar25 = *(uint **)(puVar4 + -0x18ec);\nLAB_00054984:\n                      iVar47 = 0;\n                      iVar40 = *(int *)puVar11;\n                      do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);\n                      goto LAB_000549cc;\n                    }" ({ "{") (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" (identifier "iVar38") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "iVar24 = *(int *)(*(int *)puVar7 + iVar47);" (assignment_expression "iVar24 = *(int *)(*(int *)puVar7 + iVar47)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" (* "*") (cast_expression "(int *)(*(int *)puVar7 + iVar47)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar7 + iVar47)" (( "(") (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (+ "+") (identifier "iVar47")) () ")"))))) (; ";")) (if_statement "if (iVar38 < 1) goto LAB_000549cc;" (if "if") (parenthesized_expression "(iVar38 < 1)" (( "(") (binary_expression "iVar38 < 1" (identifier "iVar38") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000549cc;" (goto "goto") (statement_identifier "LAB_000549cc") (; ";"))) (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" (identifier "puVar25") (= "=") (pointer_expression "*(uint **)(puVar4 + -0x18ec)" (* "*") (cast_expression "(uint **)(puVar4 + -0x18ec)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")"))))) (; ";")) (labeled_statement "LAB_00054984:\n                      iVar47 = 0;" (statement_identifier "LAB_00054984") (: ":") (expression_statement "iVar47 = 0;" (assignment_expression "iVar47 = 0" (identifier "iVar47") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar40 = *(int *)puVar11;" (assignment_expression "iVar40 = *(int *)puVar11" (identifier "iVar40") (= "=") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) (; ";")) (do_statement "do {\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      } while (iVar47 < iVar38);" (do "do") (compound_statement "{\n                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }\n                        iVar47 = iVar47 + 1;\n                        puVar25 = puVar25 + 1;\n                      }" ({ "{") (if_statement "if (*puVar25 + 0x7fffffff < 0x7fffffff) {\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" (if "if") (parenthesized_expression "(*puVar25 + 0x7fffffff < 0x7fffffff)" (( "(") (binary_expression "*puVar25 + 0x7fffffff < 0x7fffffff" (binary_expression "*puVar25 + 0x7fffffff" (pointer_expression "*puVar25" (* "*") (identifier "puVar25")) (+ "+") (number_literal "0x7fffffff")) (< "<") (number_literal "0x7fffffff")) () ")")) (compound_statement "{\n                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;\n                        }" ({ "{") (expression_statement "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;" (assignment_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1" (pointer_expression "*(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" (* "*") (cast_expression "(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar40 + ~*puVar25 * 0x60 + 0x38)" (( "(") (binary_expression "iVar40 + ~*puVar25 * 0x60 + 0x38" (binary_expression "iVar40 + ~*puVar25 * 0x60" (identifier "iVar40") (+ "+") (binary_expression "~*puVar25 * 0x60" (unary_expression "~*puVar25" (~ "~") (pointer_expression "*puVar25" (* "*") (identifier "puVar25"))) (* "*") (number_literal "0x60"))) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "iVar47 = iVar47 + 1;" (assignment_expression "iVar47 = iVar47 + 1" (identifier "iVar47") (= "=") (binary_expression "iVar47 + 1" (identifier "iVar47") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar25 = puVar25 + 1;" (assignment_expression "puVar25 = puVar25 + 1" (identifier "puVar25") (= "=") (binary_expression "puVar25 + 1" (identifier "puVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar47 < iVar38)" (( "(") (binary_expression "iVar47 < iVar38" (identifier "iVar47") (< "<") (identifier "iVar38")) () ")")) (; ";")) (goto_statement "goto LAB_000549cc;" (goto "goto") (statement_identifier "LAB_000549cc") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar24 = *(int *)(iVar24 + 4) + 1;\n                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;\n                  iVar38 = *(int *)puVar10;\n                  if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }\nLAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;\nLAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }\n                }" ({ "{") (expression_statement "iVar24 = *(int *)(iVar24 + 4) + 1;" (assignment_expression "iVar24 = *(int *)(iVar24 + 4) + 1" (identifier "iVar24") (= "=") (binary_expression "*(int *)(iVar24 + 4) + 1" (pointer_expression "*(int *)(iVar24 + 4)" (* "*") (cast_expression "(int *)(iVar24 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(*(int *)puVar7 + iVar47) = iVar24;" (assignment_expression "*(int *)(*(int *)puVar7 + iVar47) = iVar24" (pointer_expression "*(int *)(*(int *)puVar7 + iVar47)" (* "*") (cast_expression "(int *)(*(int *)puVar7 + iVar47)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar7 + iVar47)" (( "(") (binary_expression "*(int *)puVar7 + iVar47" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (+ "+") (identifier "iVar47")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (expression_statement "iVar38 = *(int *)puVar10;" (assignment_expression "iVar38 = *(int *)puVar10" (identifier "iVar38") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (if_statement "if (0 < iVar38) {\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" (if "if") (parenthesized_expression "(0 < iVar38)" (( "(") (binary_expression "0 < iVar38" (number_literal "0") (< "<") (identifier "iVar38")) () ")")) (compound_statement "{\n                    puVar25 = *(uint **)(puVar4 + -0x18ec);\n                    goto LAB_00054494;\n                  }" ({ "{") (expression_statement "puVar25 = *(uint **)(puVar4 + -0x18ec);" (assignment_expression "puVar25 = *(uint **)(puVar4 + -0x18ec)" (identifier "puVar25") (= "=") (pointer_expression "*(uint **)(puVar4 + -0x18ec)" (* "*") (cast_expression "(uint **)(puVar4 + -0x18ec)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")"))))) (; ";")) (goto_statement "goto LAB_00054494;" (goto "goto") (statement_identifier "LAB_00054494") (; ";")) (} "}"))) (labeled_statement "LAB_0005508c:\n                  if (*puVar15 != '\0') goto LAB_00054640;" (statement_identifier "LAB_0005508c") (: ":") (if_statement "if (*puVar15 != '\0') goto LAB_00054640;" (if "if") (parenthesized_expression "(*puVar15 != '\0')" (( "(") (binary_expression "*puVar15 != '\0'" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00054640;" (goto "goto") (statement_identifier "LAB_00054640") (; ";")))) (labeled_statement "LAB_000549cc:\n                  if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" (statement_identifier "LAB_000549cc") (: ":") (if_statement "if (iVar24 != 0) {\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;\n                  }" ({ "{") (expression_statement "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;" (assignment_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1" (pointer_expression "*(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" (* "*") (cast_expression "(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar11 + iVar24 * 0x60 + -0x28)" (( "(") (binary_expression "*(int *)puVar11 + iVar24 * 0x60 + -0x28" (binary_expression "*(int *)puVar11 + iVar24 * 0x60" (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (+ "+") (binary_expression "iVar24 * 0x60" (identifier "iVar24") (* "*") (number_literal "0x60"))) (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00054640:\n                iVar17 = iVar17 + 1;" (statement_identifier "LAB_00054640") (: ":") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar17 < *(int *)puVar9)" (( "(") (binary_expression "iVar17 < *(int *)puVar9" (identifier "iVar17") (< "<") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*(undefined4 *)(puVar4 + -0x18ec))" (( "(") (pointer_expression "*(undefined4 *)(puVar4 + -0x18ec)" (* "*") (cast_expression "(undefined4 *)(puVar4 + -0x18ec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + -0x18ec)" (( "(") (binary_expression "puVar4 + -0x18ec" (identifier "puVar4") (+ "+") (number_literal "-0x18ec")) () ")")))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*(undefined4 *)(puVar5 + -0x18fc))" (( "(") (pointer_expression "*(undefined4 *)(puVar5 + -0x18fc)" (* "*") (cast_expression "(undefined4 *)(puVar5 + -0x18fc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x18fc)" (( "(") (binary_expression "puVar5 + -0x18fc" (identifier "puVar5") (+ "+") (number_literal "-0x18fc")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar29 = (uint *)(*(uint *)puVar9 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar9 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(*(uint *)puVar9 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)puVar9 << 2)" (( "(") (binary_expression "*(uint *)puVar9 << 2" (pointer_expression "*(uint *)puVar9" (* "*") (cast_expression "(uint *)puVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)puVar9 >> 0x1e == 0)" (( "(") (binary_expression "*(uint *)puVar9 >> 0x1e == 0" (binary_expression "*(uint *)puVar9 >> 0x1e" (pointer_expression "*(uint *)puVar9" (* "*") (cast_expression "(uint *)puVar9" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              puVar25 = (uint *)xmalloc();\n              puVar4 = PTR_yydefgoto_0008da4c;\n              puVar7 = PTR_nsyms_0008d7bc;\n              puVar29 = (uint *)(*(uint *)puVar6 << 2);\n              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "puVar25 = (uint *)xmalloc();" (assignment_expression "puVar25 = (uint *)xmalloc()" (identifier "puVar25") (= "=") (cast_expression "(uint *)xmalloc()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar4 = PTR_yydefgoto_0008da4c;" (assignment_expression "puVar4 = PTR_yydefgoto_0008da4c" (identifier "puVar4") (= "=") (identifier "PTR_yydefgoto_0008da4c")) (; ";")) (expression_statement "puVar7 = PTR_nsyms_0008d7bc;" (assignment_expression "puVar7 = PTR_nsyms_0008d7bc" (identifier "puVar7") (= "=") (identifier "PTR_nsyms_0008d7bc")) (; ";")) (expression_statement "puVar29 = (uint *)(*(uint *)puVar6 << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)puVar6 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(*(uint *)puVar6 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)puVar6 << 2)" (( "(") (binary_expression "*(uint *)puVar6 << 2" (pointer_expression "*(uint *)puVar6" (* "*") (cast_expression "(uint *)puVar6" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)puVar6 >> 0x1e == 0)" (( "(") (binary_expression "*(uint *)puVar6 >> 0x1e == 0" (binary_expression "*(uint *)puVar6 >> 0x1e" (pointer_expression "*(uint *)puVar6" (* "*") (cast_expression "(uint *)puVar6" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                uVar18 = xmalloc();\n                iVar24 = *(int *)puVar10;\n                iVar17 = *(int *)puVar7;\n                *(undefined4 *)puVar4 = uVar18;\n                puVar11 = PTR_to_state_0008d978;\n                puVar5 = PTR_from_state_0008d974;\n                puVar6 = PTR_goto_map_0008d970;\n                if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }\n                iVar47 = *(int *)PTR_goto_map_0008d970;\nLAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;\n                (*(code *)PTR_free_0008df9c)(puVar25);\n                (*(code *)PTR_free_0008df9c)(iVar47);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);\n                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);\n                iVar17 = xcalloc(*(undefined4 *)puVar13,4);\n                uVar28 = *(uint *)puVar13;\n                *(int *)(puVar6 + -0x18f0) = iVar17;\n                *(undefined4 *)(puVar6 + -0x18f4) = 0;\n                if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }\n                puVar10 = PTR_base_0008da48;\n                puVar29 = (uint *)(uVar28 << 2);\n                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" (identifier "iVar24") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "iVar17 = *(int *)puVar7;" (assignment_expression "iVar17 = *(int *)puVar7" (identifier "iVar17") (= "=") (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7")))) (; ";")) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar11 = PTR_to_state_0008d978;" (assignment_expression "puVar11 = PTR_to_state_0008d978" (identifier "puVar11") (= "=") (identifier "PTR_to_state_0008d978")) (; ";")) (expression_statement "puVar5 = PTR_from_state_0008d974;" (assignment_expression "puVar5 = PTR_from_state_0008d974" (identifier "puVar5") (= "=") (identifier "PTR_from_state_0008d974")) (; ";")) (expression_statement "puVar6 = PTR_goto_map_0008d970;" (assignment_expression "puVar6 = PTR_goto_map_0008d970" (identifier "puVar6") (= "=") (identifier "PTR_goto_map_0008d970")) (; ";")) (if_statement "if (iVar24 < iVar17) {\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" (if "if") (parenthesized_expression "(iVar24 < iVar17)" (( "(") (binary_expression "iVar24 < iVar17" (identifier "iVar24") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n                  iVar47 = *(int *)PTR_goto_map_0008d970;\n                  iVar17 = iVar24;\n                  do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );\n                }" ({ "{") (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" (identifier "iVar47") (= "=") (pointer_expression "*(int *)PTR_goto_map_0008d970" (* "*") (cast_expression "(int *)PTR_goto_map_0008d970" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_goto_map_0008d970")))) (; ";")) (expression_statement "iVar17 = iVar24;" (assignment_expression "iVar17 = iVar24" (identifier "iVar17") (= "=") (identifier "iVar24")) (; ";")) (do_statement "do {\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  } while( true );" (do "do") (compound_statement "{\n                    iVar38 = (iVar17 - iVar24) * 4;\n                    uVar28 = *(uint *)(iVar47 + iVar38);\n                    uVar45 = ((uint *)(iVar47 + iVar38))[1];\n                    if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    iVar17 = iVar17 + 1;\n                    iVar24 = *(int *)puVar10;\n                  }" ({ "{") (expression_statement "iVar38 = (iVar17 - iVar24) * 4;" (assignment_expression "iVar38 = (iVar17 - iVar24) * 4" (identifier "iVar38") (= "=") (binary_expression "(iVar17 - iVar24) * 4" (parenthesized_expression "(iVar17 - iVar24)" (( "(") (binary_expression "iVar17 - iVar24" (identifier "iVar17") (- "-") (identifier "iVar24")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar28 = *(uint *)(iVar47 + iVar38);" (assignment_expression "uVar28 = *(uint *)(iVar47 + iVar38)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar47 + iVar38)" (* "*") (cast_expression "(uint *)(iVar47 + iVar38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar38)" (( "(") (binary_expression "iVar47 + iVar38" (identifier "iVar47") (+ "+") (identifier "iVar38")) () ")"))))) (; ";")) (expression_statement "uVar45 = ((uint *)(iVar47 + iVar38))[1];" (assignment_expression "uVar45 = ((uint *)(iVar47 + iVar38))[1]" (identifier "uVar45") (= "=") (subscript_expression "((uint *)(iVar47 + iVar38))[1]" (parenthesized_expression "((uint *)(iVar47 + iVar38))" (( "(") (cast_expression "(uint *)(iVar47 + iVar38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar38)" (( "(") (binary_expression "iVar47 + iVar38" (identifier "iVar47") (+ "+") (identifier "iVar38")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar28 == uVar45) {\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }\n                    else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" (if "if") (parenthesized_expression "(uVar28 == uVar45)" (( "(") (binary_expression "uVar28 == uVar45" (identifier "uVar28") (== "==") (identifier "uVar45")) () ")")) (compound_statement "{\nLAB_00055468:\n                      iVar33 = -1;\nLAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" ({ "{") (labeled_statement "LAB_00055468:\n                      iVar33 = -1;" (statement_identifier "LAB_00055468") (: ":") (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" (identifier "iVar33") (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "LAB_0005494c:\n                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;" (statement_identifier "LAB_0005494c") (: ":") (expression_statement "*(int *)(*(int *)puVar4 + iVar38) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + iVar38) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + iVar38)" (* "*") (cast_expression "(int *)(*(int *)puVar4 + iVar38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar4 + iVar38)" (( "(") (binary_expression "*(int *)puVar4 + iVar38" (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (+ "+") (identifier "iVar38")) () ")")))) (= "=") (identifier "iVar33")) (; ";"))) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" (if "if") (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" (( "(") (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (<= "<=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_00054a2c;" (goto "goto") (statement_identifier "LAB_00054a2c") (; ";"))) (} "}")) (else_clause "else {\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" (else "else") (compound_statement "{\n                      iVar40 = *(int *)puVar9;\n                      if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }\n                      piVar21 = (int *)(iVar31 + iVar36);\n                      uVar37 = 0;\n                      uVar35 = uVar28;\n                      do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);\n                      if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }\n                      iVar47 = *(int *)puVar6;\n                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;\n                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;\n                    }" ({ "{") (expression_statement "iVar40 = *(int *)puVar9;" (assignment_expression "iVar40 = *(int *)puVar9" (identifier "iVar40") (= "=") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) (; ";")) (if_statement "if (iVar40 < 1) {\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }\n                      else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" (if "if") (parenthesized_expression "(iVar40 < 1)" (( "(") (binary_expression "iVar40 < 1" (identifier "iVar40") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                        if (uVar45 <= uVar28) goto LAB_00055468;\nLAB_00054758:\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 * 4;\n                        piVar21 = (int *)(iVar31 + iVar36);\n                        do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);\n                        iVar33 = -1;\n                        if (0 < iVar40) goto LAB_00054798;\n                      }" ({ "{") (if_statement "if (uVar45 <= uVar28) goto LAB_00055468;" (if "if") (parenthesized_expression "(uVar45 <= uVar28)" (( "(") (binary_expression "uVar45 <= uVar28" (identifier "uVar45") (<= "<=") (identifier "uVar28")) () ")")) (goto_statement "goto LAB_00055468;" (goto "goto") (statement_identifier "LAB_00055468") (; ";"))) (labeled_statement "LAB_00054758:\n                        iVar31 = *(int *)puVar11;" (statement_identifier "LAB_00054758") (: ":") (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" (identifier "iVar31") (= "=") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) (; ";"))) (expression_statement "iVar36 = uVar28 * 4;" (assignment_expression "iVar36 = uVar28 * 4" (identifier "iVar36") (= "=") (binary_expression "uVar28 * 4" (identifier "uVar28") (* "*") (number_literal "4"))) (; ";")) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar31 + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar36)" (( "(") (binary_expression "iVar31 + iVar36" (identifier "iVar31") (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (do_statement "do {\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);" (do "do") (compound_statement "{\n                          iVar33 = *piVar21;\n                          piVar21 = piVar21 + 1;\n                          puVar25[iVar33] = puVar25[iVar33] + 1;\n                        }" ({ "{") (expression_statement "iVar33 = *piVar21;" (assignment_expression "iVar33 = *piVar21" (identifier "iVar33") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar25[iVar33] = puVar25[iVar33] + 1;" (assignment_expression "puVar25[iVar33] = puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" (identifier "puVar25") ([ "[") (identifier "iVar33") (] "]")) (= "=") (binary_expression "puVar25[iVar33] + 1" (subscript_expression "puVar25[iVar33]" (identifier "puVar25") ([ "[") (identifier "iVar33") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)(iVar31 + uVar45 * 4) != piVar21)" (( "(") (binary_expression "(int *)(iVar31 + uVar45 * 4) != piVar21" (cast_expression "(int *)(iVar31 + uVar45 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + uVar45 * 4)" (( "(") (binary_expression "iVar31 + uVar45 * 4" (identifier "iVar31") (+ "+") (binary_expression "uVar45 * 4" (identifier "uVar45") (* "*") (number_literal "4"))) () ")"))) (!= "!=") (identifier "piVar21")) () ")")) (; ";")) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" (identifier "iVar33") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (0 < iVar40) goto LAB_00054798;" (if "if") (parenthesized_expression "(0 < iVar40)" (( "(") (binary_expression "0 < iVar40" (number_literal "0") (< "<") (identifier "iVar40")) () ")")) (goto_statement "goto LAB_00054798;" (goto "goto") (statement_identifier "LAB_00054798") (; ";"))) (} "}")) (else_clause "else {\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" (else "else") (compound_statement "{\n                        puVar29 = puVar25;\n                        do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);\n                        if (uVar28 < uVar45) goto LAB_00054758;\nLAB_00054798:\n                        iVar31 = 0;\n                        iVar33 = -1;\n                        uVar35 = 0;\n                        puVar29 = puVar25;\n                        do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);\n                        if (uVar45 <= uVar28) goto LAB_0005494c;\n                        iVar31 = *(int *)puVar11;\n                        iVar36 = uVar28 << 2;\n                      }" ({ "{") (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" (identifier "puVar29") (= "=") (identifier "puVar25")) (; ";")) (do_statement "do {\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        } while (puVar25 + iVar40 != puVar29);" (do "do") (compound_statement "{\n                          *puVar29 = 0;\n                          puVar29 = puVar29 + 1;\n                        }" ({ "{") (expression_statement "*puVar29 = 0;" (assignment_expression "*puVar29 = 0" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" (identifier "puVar29") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar25 + iVar40 != puVar29)" (( "(") (binary_expression "puVar25 + iVar40 != puVar29" (binary_expression "puVar25 + iVar40" (identifier "puVar25") (+ "+") (identifier "iVar40")) (!= "!=") (identifier "puVar29")) () ")")) (; ";")) (if_statement "if (uVar28 < uVar45) goto LAB_00054758;" (if "if") (parenthesized_expression "(uVar28 < uVar45)" (( "(") (binary_expression "uVar28 < uVar45" (identifier "uVar28") (< "<") (identifier "uVar45")) () ")")) (goto_statement "goto LAB_00054758;" (goto "goto") (statement_identifier "LAB_00054758") (; ";"))) (labeled_statement "LAB_00054798:\n                        iVar31 = 0;" (statement_identifier "LAB_00054798") (: ":") (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" (identifier "iVar31") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar33 = -1;" (assignment_expression "iVar33 = -1" (identifier "iVar33") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" (identifier "puVar29") (= "=") (identifier "puVar25")) (; ";")) (do_statement "do {\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        } while (iVar31 < iVar40);" (do "do") (compound_statement "{\n                          uVar37 = *puVar29;\n                          puVar29 = puVar29 + 1;\n                          if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }\n                          iVar31 = iVar31 + 1;\n                          if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }\n                        }" ({ "{") (expression_statement "uVar37 = *puVar29;" (assignment_expression "uVar37 = *puVar29" (identifier "uVar37") (= "=") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))) (; ";")) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" (identifier "puVar29") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar35 < uVar37) {\n                            iVar33 = iVar31;\n                          }" (if "if") (parenthesized_expression "(uVar35 < uVar37)" (( "(") (binary_expression "uVar35 < uVar37" (identifier "uVar35") (< "<") (identifier "uVar37")) () ")")) (compound_statement "{\n                            iVar33 = iVar31;\n                          }" ({ "{") (expression_statement "iVar33 = iVar31;" (assignment_expression "iVar33 = iVar31" (identifier "iVar33") (= "=") (identifier "iVar31")) (; ";")) (} "}"))) (expression_statement "iVar31 = iVar31 + 1;" (assignment_expression "iVar31 = iVar31 + 1" (identifier "iVar31") (= "=") (binary_expression "iVar31 + 1" (identifier "iVar31") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar35 < uVar37) {\n                            uVar35 = uVar37;\n                          }" (if "if") (parenthesized_expression "(uVar35 < uVar37)" (( "(") (binary_expression "uVar35 < uVar37" (identifier "uVar35") (< "<") (identifier "uVar37")) () ")")) (compound_statement "{\n                            uVar35 = uVar37;\n                          }" ({ "{") (expression_statement "uVar35 = uVar37;" (assignment_expression "uVar35 = uVar37" (identifier "uVar35") (= "=") (identifier "uVar37")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar31 < iVar40)" (( "(") (binary_expression "iVar31 < iVar40" (identifier "iVar31") (< "<") (identifier "iVar40")) () ")")) (; ";")) (if_statement "if (uVar45 <= uVar28) goto LAB_0005494c;" (if "if") (parenthesized_expression "(uVar45 <= uVar28)" (( "(") (binary_expression "uVar45 <= uVar28" (identifier "uVar45") (<= "<=") (identifier "uVar28")) () ")")) (goto_statement "goto LAB_0005494c;" (goto "goto") (statement_identifier "LAB_0005494c") (; ";"))) (expression_statement "iVar31 = *(int *)puVar11;" (assignment_expression "iVar31 = *(int *)puVar11" (identifier "iVar31") (= "=") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) (; ";")) (expression_statement "iVar36 = uVar28 << 2;" (assignment_expression "iVar36 = uVar28 << 2" (identifier "iVar36") (= "=") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "piVar21 = (int *)(iVar31 + iVar36);" (assignment_expression "piVar21 = (int *)(iVar31 + iVar36)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar31 + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar36)" (( "(") (binary_expression "iVar31 + iVar36" (identifier "iVar31") (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (expression_statement "uVar37 = 0;" (assignment_expression "uVar37 = 0" (identifier "uVar37") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar35 = uVar28;" (assignment_expression "uVar35 = uVar28" (identifier "uVar35") (= "=") (identifier "uVar28")) (; ";")) (do_statement "do {\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      } while (uVar35 < uVar45);" (do "do") (compound_statement "{\n                        if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }\n                        uVar35 = uVar35 + 1;\n                        piVar21 = piVar21 + 1;\n                      }" ({ "{") (if_statement "if (*piVar21 != iVar33) {\n                          uVar37 = uVar37 + 1;\n                        }" (if "if") (parenthesized_expression "(*piVar21 != iVar33)" (( "(") (binary_expression "*piVar21 != iVar33" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (!= "!=") (identifier "iVar33")) () ")")) (compound_statement "{\n                          uVar37 = uVar37 + 1;\n                        }" ({ "{") (expression_statement "uVar37 = uVar37 + 1;" (assignment_expression "uVar37 = uVar37 + 1" (identifier "uVar37") (= "=") (binary_expression "uVar37 + 1" (identifier "uVar37") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar35 < uVar45)" (( "(") (binary_expression "uVar35 < uVar45" (identifier "uVar35") (< "<") (identifier "uVar45")) () ")")) (; ";")) (if_statement "if (uVar37 != 0) {\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" (if "if") (parenthesized_expression "(uVar37 != 0)" (( "(") (binary_expression "uVar37 != 0" (identifier "uVar37") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar47 = uVar37 << 2;\n                        iVar38 = *(int *)(puVar2 + -0x18d8);\n                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;\n                        puVar29 = (uint *)puVar2;\n                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }\n                        goto LAB_000554fc;\n                      }" ({ "{") (expression_statement "iVar47 = uVar37 << 2;" (assignment_expression "iVar47 = uVar37 << 2" (identifier "iVar47") (= "=") (binary_expression "uVar37 << 2" (identifier "uVar37") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar38 = *(int *)(puVar2 + -0x18d8);" (assignment_expression "iVar38 = *(int *)(puVar2 + -0x18d8)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18d8)" (* "*") (cast_expression "(int *)(puVar2 + -0x18d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")"))))) (; ";")) (expression_statement "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;" (assignment_expression "iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4" (identifier "iVar24") (= "=") (binary_expression "((iVar17 + *(int *)puVar9) - iVar24) * 4" (parenthesized_expression "((iVar17 + *(int *)puVar9) - iVar24)" (( "(") (binary_expression "(iVar17 + *(int *)puVar9) - iVar24" (parenthesized_expression "(iVar17 + *(int *)puVar9)" (( "(") (binary_expression "iVar17 + *(int *)puVar9" (identifier "iVar17") (+ "+") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (- "-") (identifier "iVar24")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "puVar29 = (uint *)puVar2;" (assignment_expression "puVar29 = (uint *)puVar2" (identifier "puVar29") (= "=") (cast_expression "(uint *)puVar2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (; ";")) (if_statement "if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" (if "if") (parenthesized_expression "((-1 < iVar47) && (uVar37 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < iVar47) && (uVar37 >> 0x1e == 0)" (parenthesized_expression "(-1 < iVar47)" (( "(") (binary_expression "-1 < iVar47" (number_literal "-1") (< "<") (identifier "iVar47")) () ")")) (&& "&&") (parenthesized_expression "(uVar37 >> 0x1e == 0)" (( "(") (binary_expression "uVar37 >> 0x1e == 0" (binary_expression "uVar37 >> 0x1e" (identifier "uVar37") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                          puVar22 = (undefined4 *)xmalloc(iVar47);\n                          iVar40 = *(int *)(puVar2 + -0x18dc);\n                          *(undefined4 **)(iVar38 + iVar24) = puVar22;\n                          piVar21 = (int *)xmalloc(iVar47);\n                          *(int **)(iVar40 + iVar24) = piVar21;\n                          piVar20 = (int *)(*(int *)puVar11 + iVar36);\n                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);\n                          do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);\n                          iVar47 = *(int *)puVar6;\n                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);\n                          iVar38 = *(int *)(puVar3 + -0x18e8);\n                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;\n                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;\n                          iVar38 = (iVar17 - *(int *)puVar10) * 4;\n                          goto LAB_0005494c;\n                        }" ({ "{") (expression_statement "puVar22 = (undefined4 *)xmalloc(iVar47);" (assignment_expression "puVar22 = (undefined4 *)xmalloc(iVar47)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)xmalloc(iVar47)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar47)" (identifier "xmalloc") (argument_list "(iVar47)" (( "(") (identifier "iVar47") () ")"))))) (; ";")) (expression_statement "iVar40 = *(int *)(puVar2 + -0x18dc);" (assignment_expression "iVar40 = *(int *)(puVar2 + -0x18dc)" (identifier "iVar40") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18dc)" (* "*") (cast_expression "(int *)(puVar2 + -0x18dc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18dc)" (( "(") (binary_expression "puVar2 + -0x18dc" (identifier "puVar2") (+ "+") (number_literal "-0x18dc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(iVar38 + iVar24) = puVar22;" (assignment_expression "*(undefined4 **)(iVar38 + iVar24) = puVar22" (pointer_expression "*(undefined4 **)(iVar38 + iVar24)" (* "*") (cast_expression "(undefined4 **)(iVar38 + iVar24)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar38 + iVar24)" (( "(") (binary_expression "iVar38 + iVar24" (identifier "iVar38") (+ "+") (identifier "iVar24")) () ")")))) (= "=") (identifier "puVar22")) (; ";")) (expression_statement "piVar21 = (int *)xmalloc(iVar47);" (assignment_expression "piVar21 = (int *)xmalloc(iVar47)" (identifier "piVar21") (= "=") (cast_expression "(int *)xmalloc(iVar47)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar47)" (identifier "xmalloc") (argument_list "(iVar47)" (( "(") (identifier "iVar47") () ")"))))) (; ";")) (expression_statement "*(int **)(iVar40 + iVar24) = piVar21;" (assignment_expression "*(int **)(iVar40 + iVar24) = piVar21" (pointer_expression "*(int **)(iVar40 + iVar24)" (* "*") (cast_expression "(int **)(iVar40 + iVar24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar40 + iVar24)" (( "(") (binary_expression "iVar40 + iVar24" (identifier "iVar40") (+ "+") (identifier "iVar24")) () ")")))) (= "=") (identifier "piVar21")) (; ";")) (expression_statement "piVar20 = (int *)(*(int *)puVar11 + iVar36);" (assignment_expression "piVar20 = (int *)(*(int *)puVar11 + iVar36)" (identifier "piVar20") (= "=") (cast_expression "(int *)(*(int *)puVar11 + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar11 + iVar36)" (( "(") (binary_expression "*(int *)puVar11 + iVar36" (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (expression_statement "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36)" (identifier "puVar30") (= "=") (cast_expression "(undefined4 *)(*(int *)puVar5 + iVar36)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar5 + iVar36)" (( "(") (binary_expression "*(int *)puVar5 + iVar36" (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (do_statement "do {\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          } while (uVar28 < uVar45);" (do "do") (compound_statement "{\n                            piVar26 = piVar21;\n                            puVar46 = puVar22;\n                            if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }\n                            uVar28 = uVar28 + 1;\n                            piVar20 = piVar20 + 1;\n                            puVar30 = puVar30 + 1;\n                            piVar21 = piVar26;\n                            puVar22 = puVar46;\n                          }" ({ "{") (expression_statement "piVar26 = piVar21;" (assignment_expression "piVar26 = piVar21" (identifier "piVar26") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "puVar46 = puVar22;" (assignment_expression "puVar46 = puVar22" (identifier "puVar46") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (*piVar20 != iVar33) {\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" (if "if") (parenthesized_expression "(*piVar20 != iVar33)" (( "(") (binary_expression "*piVar20 != iVar33" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (!= "!=") (identifier "iVar33")) () ")")) (compound_statement "{\n                              puVar46 = puVar22 + 1;\n                              piVar26 = piVar21 + 1;\n                              *puVar22 = *puVar30;\n                              *piVar21 = *piVar20;\n                            }" ({ "{") (expression_statement "puVar46 = puVar22 + 1;" (assignment_expression "puVar46 = puVar22 + 1" (identifier "puVar46") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar26 = piVar21 + 1;" (assignment_expression "piVar26 = piVar21 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar22 = *puVar30;" (assignment_expression "*puVar22 = *puVar30" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*puVar30" (* "*") (identifier "puVar30"))) (; ";")) (expression_statement "*piVar21 = *piVar20;" (assignment_expression "*piVar21 = *piVar20" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (} "}"))) (expression_statement "uVar28 = uVar28 + 1;" (assignment_expression "uVar28 = uVar28 + 1" (identifier "uVar28") (= "=") (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 1" (identifier "puVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar21 = piVar26;" (assignment_expression "piVar21 = piVar26" (identifier "piVar21") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "puVar22 = puVar46;" (assignment_expression "puVar22 = puVar46" (identifier "puVar22") (= "=") (identifier "puVar46")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar28 < uVar45)" (( "(") (binary_expression "uVar28 < uVar45" (identifier "uVar28") (< "<") (identifier "uVar45")) () ")")) (; ";")) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);" (assignment_expression "piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" (* "*") (cast_expression "(int **)(*(int *)(puVar2 + -0x18d8) + iVar24)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar2 + -0x18d8) + iVar24)" (( "(") (binary_expression "*(int *)(puVar2 + -0x18d8) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18d8)" (* "*") (cast_expression "(int *)(puVar2 + -0x18d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")")))) (+ "+") (identifier "iVar24")) () ")"))))) (; ";")) (expression_statement "iVar38 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar38 = *(int *)(puVar3 + -0x18e8)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(int *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")"))))) (; ";")) (expression_statement "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;" (assignment_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37" (pointer_expression "*(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" (* "*") (cast_expression "(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + -0x18e4) + iVar24)" (( "(") (binary_expression "*(int *)(puVar2 + -0x18e4) + iVar24" (pointer_expression "*(int *)(puVar2 + -0x18e4)" (* "*") (cast_expression "(int *)(puVar2 + -0x18e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")")))) (+ "+") (identifier "iVar24")) () ")")))) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;" (assignment_expression "*(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1" (pointer_expression "*(int *)(iVar38 + iVar24)" (* "*") (cast_expression "(int *)(iVar38 + iVar24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar38 + iVar24)" (( "(") (binary_expression "iVar38 + iVar24" (identifier "iVar38") (+ "+") (identifier "iVar24")) () ")")))) (= "=") (binary_expression "(puVar46[-1] - *piVar21) + 1" (parenthesized_expression "(puVar46[-1] - *piVar21)" (( "(") (binary_expression "puVar46[-1] - *piVar21" (subscript_expression "puVar46[-1]" (identifier "puVar46") ([ "[") (number_literal "-1") (] "]")) (- "-") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar38 = (iVar17 - *(int *)puVar10) * 4;" (assignment_expression "iVar38 = (iVar17 - *(int *)puVar10) * 4" (identifier "iVar38") (= "=") (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" (( "(") (binary_expression "iVar17 - *(int *)puVar10" (identifier "iVar17") (- "-") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) () ")")) (* "*") (number_literal "4"))) (; ";")) (goto_statement "goto LAB_0005494c;" (goto "goto") (statement_identifier "LAB_0005494c") (; ";")) (} "}"))) (goto_statement "goto LAB_000554fc;" (goto "goto") (statement_identifier "LAB_000554fc") (; ";")) (} "}"))) (expression_statement "iVar47 = *(int *)puVar6;" (assignment_expression "iVar47 = *(int *)puVar6" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) (; ";")) (expression_statement "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;" (assignment_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33" (pointer_expression "*(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" (* "*") (cast_expression "(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4)" (( "(") (binary_expression "*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4" (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (+ "+") (binary_expression "(iVar17 - *(int *)puVar10) * 4" (parenthesized_expression "(iVar17 - *(int *)puVar10)" (( "(") (binary_expression "iVar17 - *(int *)puVar10" (identifier "iVar17") (- "-") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar33")) (; ";")) (if_statement "if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;" (if "if") (parenthesized_expression "(*(int *)puVar7 <= iVar17 + 1)" (( "(") (binary_expression "*(int *)puVar7 <= iVar17 + 1" (pointer_expression "*(int *)puVar7" (* "*") (cast_expression "(int *)puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (<= "<=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) () ")")) (goto_statement "goto LAB_00054a2c;" (goto "goto") (statement_identifier "LAB_00054a2c") (; ";"))) (} "}")))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = *(int *)puVar10;" (assignment_expression "iVar24 = *(int *)puVar10" (identifier "iVar24") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar47 = *(int *)PTR_goto_map_0008d970;" (assignment_expression "iVar47 = *(int *)PTR_goto_map_0008d970" (identifier "iVar47") (= "=") (pointer_expression "*(int *)PTR_goto_map_0008d970" (* "*") (cast_expression "(int *)PTR_goto_map_0008d970" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_goto_map_0008d970")))) (; ";")) (labeled_statement "LAB_00054a2c:\n                puVar6 = PTR_DAT_0008d618;" (statement_identifier "LAB_00054a2c") (: ":") (expression_statement "puVar6 = PTR_DAT_0008d618;" (assignment_expression "puVar6 = PTR_DAT_0008d618" (identifier "puVar6") (= "=") (identifier "PTR_DAT_0008d618")) (; ";"))) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar25);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar25)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(puVar25)" (( "(") (identifier "puVar25") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar47);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar47)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(iVar47)" (( "(") (identifier "iVar47") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*(undefined4 *)PTR_from_state_0008d974)" (( "(") (pointer_expression "*(undefined4 *)PTR_from_state_0008d974" (* "*") (cast_expression "(undefined4 *)PTR_from_state_0008d974" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_from_state_0008d974"))) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*(undefined4 *)puVar11)" (( "(") (pointer_expression "*(undefined4 *)puVar11" (* "*") (cast_expression "(undefined4 *)puVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) () ")"))) (; ";")) (expression_statement "iVar17 = xcalloc(*(undefined4 *)puVar13,4);" (assignment_expression "iVar17 = xcalloc(*(undefined4 *)puVar13,4)" (identifier "iVar17") (= "=") (call_expression "xcalloc(*(undefined4 *)puVar13,4)" (identifier "xcalloc") (argument_list "(*(undefined4 *)puVar13,4)" (( "(") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar28 = *(uint *)puVar13;" (assignment_expression "uVar28 = *(uint *)puVar13" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)puVar13" (* "*") (cast_expression "(uint *)puVar13" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) (; ";")) (expression_statement "*(int *)(puVar6 + -0x18f0) = iVar17;" (assignment_expression "*(int *)(puVar6 + -0x18f0) = iVar17" (pointer_expression "*(int *)(puVar6 + -0x18f0)" (* "*") (cast_expression "(int *)(puVar6 + -0x18f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f0)" (( "(") (binary_expression "puVar6 + -0x18f0" (identifier "puVar6") (+ "+") (number_literal "-0x18f0")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*(undefined4 *)(puVar6 + -0x18f4) = 0;" (assignment_expression "*(undefined4 *)(puVar6 + -0x18f4) = 0" (pointer_expression "*(undefined4 *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(undefined4 *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)uVar28) {\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" (if "if") (parenthesized_expression "(0 < (int)uVar28)" (( "(") (binary_expression "0 < (int)uVar28" (number_literal "0") (< "<") (cast_expression "(int)uVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar28"))) () ")")) (compound_statement "{\n                  uVar45 = 0;\n                  puVar25 = *(uint **)(puVar2 + -0x18e4);\n                  iVar47 = *(int *)(puVar3 + -0x18e8);\n                  bVar1 = false;\n                  iVar24 = 0;\n                  puVar29 = puVar25;\n                  do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);\nLAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }\n                }" ({ "{") (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar25 = *(uint **)(puVar2 + -0x18e4);" (assignment_expression "puVar25 = *(uint **)(puVar2 + -0x18e4)" (identifier "puVar25") (= "=") (pointer_expression "*(uint **)(puVar2 + -0x18e4)" (* "*") (cast_expression "(uint **)(puVar2 + -0x18e4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")"))))) (; ";")) (expression_statement "iVar47 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar47 = *(int *)(puVar3 + -0x18e8)" (identifier "iVar47") (= "=") (pointer_expression "*(int *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(int *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")"))))) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar29 = puVar25;" (assignment_expression "puVar29 = puVar25" (identifier "puVar29") (= "=") (identifier "puVar25")) (; ";")) (do_statement "do {\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  } while (uVar45 != uVar28);" (do "do") (compound_statement "{\n                    while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }\n                    uVar45 = uVar45 + 1;\n                    puVar29 = puVar29 + 1;\n                  }" ({ "{") (while_statement "while( true ) {\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar35 = *puVar29;\n                      iVar38 = iVar24 + -1;\n                      if (uVar35 == 0) break;\n                      iVar40 = *(int *)(iVar47 + uVar45 * 4);\n                      if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }\nLAB_00054b90:\n                      iVar24 = iVar24 + 1;\n                      bVar1 = true;\n                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;\n                      uVar45 = uVar45 + 1;\n                      puVar29 = puVar29 + 1;\n                      if (uVar45 == uVar28) goto LAB_00054bb0;\n                    }" ({ "{") (expression_statement "uVar35 = *puVar29;" (assignment_expression "uVar35 = *puVar29" (identifier "uVar35") (= "=") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))) (; ";")) (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" (identifier "iVar38") (= "=") (binary_expression "iVar24 + -1" (identifier "iVar24") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar35 == 0) break;" (if "if") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar40 = *(int *)(iVar47 + uVar45 * 4);" (assignment_expression "iVar40 = *(int *)(iVar47 + uVar45 * 4)" (identifier "iVar40") (= "=") (pointer_expression "*(int *)(iVar47 + uVar45 * 4)" (* "*") (cast_expression "(int *)(iVar47 + uVar45 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + uVar45 * 4)" (( "(") (binary_expression "iVar47 + uVar45 * 4" (identifier "iVar47") (+ "+") (binary_expression "uVar45 * 4" (identifier "uVar45") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar38 != -1) {\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(iVar38 != -1)" (( "(") (binary_expression "iVar38 != -1" (identifier "iVar38") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                        iVar48 = iVar38 * 4;\n                        iVar36 = *(int *)(iVar17 + iVar48);\n                        iVar31 = *(int *)(iVar47 + iVar36 * 4);\n                        iVar33 = iVar38;\n                        if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }\n                        bVar1 = iVar33 < iVar38;\n                        iVar31 = iVar33;\n                        iVar38 = iVar33;\n                        if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }\n                      }" ({ "{") (expression_statement "iVar48 = iVar38 * 4;" (assignment_expression "iVar48 = iVar38 * 4" (identifier "iVar48") (= "=") (binary_expression "iVar38 * 4" (identifier "iVar38") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar36 = *(int *)(iVar17 + iVar48);" (assignment_expression "iVar36 = *(int *)(iVar17 + iVar48)" (identifier "iVar36") (= "=") (pointer_expression "*(int *)(iVar17 + iVar48)" (* "*") (cast_expression "(int *)(iVar17 + iVar48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar48)" (( "(") (binary_expression "iVar17 + iVar48" (identifier "iVar17") (+ "+") (identifier "iVar48")) () ")"))))) (; ";")) (expression_statement "iVar31 = *(int *)(iVar47 + iVar36 * 4);" (assignment_expression "iVar31 = *(int *)(iVar47 + iVar36 * 4)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(iVar47 + iVar36 * 4)" (* "*") (cast_expression "(int *)(iVar47 + iVar36 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar36 * 4)" (( "(") (binary_expression "iVar47 + iVar36 * 4" (identifier "iVar47") (+ "+") (binary_expression "iVar36 * 4" (identifier "iVar36") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar33 = iVar38;" (assignment_expression "iVar33 = iVar38" (identifier "iVar33") (= "=") (identifier "iVar38")) (; ";")) (if_statement "if (iVar31 < iVar40) {\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }\n                        else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" (if "if") (parenthesized_expression "(iVar31 < iVar40)" (( "(") (binary_expression "iVar31 < iVar40" (identifier "iVar31") (< "<") (identifier "iVar40")) () ")")) (compound_statement "{\n                          iVar31 = iVar17 + iVar48 + 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);\n                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;\n                        }" ({ "{") (expression_statement "iVar31 = iVar17 + iVar48 + 4;" (assignment_expression "iVar31 = iVar17 + iVar48 + 4" (identifier "iVar31") (= "=") (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" (identifier "iVar17") (+ "+") (identifier "iVar48")) (+ "+") (number_literal "4"))) (; ";")) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          } while (iVar41 < iVar40);" (do "do") (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }\n                            piVar21 = (int *)(iVar31 + -8);\n                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);\n                            iVar31 = iVar31 + -4;\n                          }" ({ "{") (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + -1" (identifier "iVar33") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar33 == -1) {\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" (if "if") (parenthesized_expression "(iVar33 == -1)" (( "(") (binary_expression "iVar33 == -1" (identifier "iVar33") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                              iVar31 = -1;\n                              goto LAB_00054b68;\n                            }" ({ "{") (expression_statement "iVar31 = -1;" (assignment_expression "iVar31 = -1" (identifier "iVar31") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_00054b68;" (goto "goto") (statement_identifier "LAB_00054b68") (; ";")) (} "}"))) (expression_statement "piVar21 = (int *)(iVar31 + -8);" (assignment_expression "piVar21 = (int *)(iVar31 + -8)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar31 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + -8)" (( "(") (binary_expression "iVar31 + -8" (identifier "iVar31") (+ "+") (number_literal "-8")) () ")")))) (; ";")) (expression_statement "iVar41 = *(int *)(iVar47 + *piVar21 * 4);" (assignment_expression "iVar41 = *(int *)(iVar47 + *piVar21 * 4)" (identifier "iVar41") (= "=") (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" (* "*") (cast_expression "(int *)(iVar47 + *piVar21 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + *piVar21 * 4)" (( "(") (binary_expression "iVar47 + *piVar21 * 4" (identifier "iVar47") (+ "+") (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar31 = iVar31 + -4;" (assignment_expression "iVar31 = iVar31 + -4" (identifier "iVar31") (= "=") (binary_expression "iVar31 + -4" (identifier "iVar31") (+ "+") (number_literal "-4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar41 < iVar40)" (( "(") (binary_expression "iVar41 < iVar40" (identifier "iVar41") (< "<") (identifier "iVar40")) () ")")) (; ";")) (if_statement "if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;" (if "if") (parenthesized_expression "((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35))" (( "(") (binary_expression "(iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == iVar41)" (( "(") (binary_expression "iVar40 == iVar41" (identifier "iVar40") (== "==") (identifier "iVar41")) () ")")) (&& "&&") (parenthesized_expression "(puVar25[*piVar21] < uVar35)" (( "(") (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" (identifier "puVar25") ([ "[") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (] "]")) (< "<") (identifier "uVar35")) () ")"))) () ")")) (goto_statement "goto LAB_00055404;" (goto "goto") (statement_identifier "LAB_00055404") (; ";"))) (} "}")) (else_clause "else {\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" (else "else") (compound_statement "{\n                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;\nLAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;\n                          do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));\n                        }" ({ "{") (if_statement "if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;" (if "if") (parenthesized_expression "((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36]))" (( "(") (binary_expression "(iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])" (parenthesized_expression "(iVar40 != iVar31)" (( "(") (binary_expression "iVar40 != iVar31" (identifier "iVar40") (!= "!=") (identifier "iVar31")) () ")")) (|| "||") (parenthesized_expression "(uVar35 <= puVar25[iVar36])" (( "(") (binary_expression "uVar35 <= puVar25[iVar36]" (identifier "uVar35") (<= "<=") (subscript_expression "puVar25[iVar36]" (identifier "puVar25") ([ "[") (identifier "iVar36") (] "]"))) () ")"))) () ")")) (goto_statement "goto LAB_00054b90;" (goto "goto") (statement_identifier "LAB_00054b90") (; ";"))) (labeled_statement "LAB_00055404:\n                          iVar41 = iVar17 + iVar33 * 4;" (statement_identifier "LAB_00055404") (: ":") (expression_statement "iVar41 = iVar17 + iVar33 * 4;" (assignment_expression "iVar41 = iVar17 + iVar33 * 4" (identifier "iVar41") (= "=") (binary_expression "iVar17 + iVar33 * 4" (identifier "iVar17") (+ "+") (binary_expression "iVar33 * 4" (identifier "iVar33") (* "*") (number_literal "4")))) (; ";"))) (do_statement "do {\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));" (do "do") (compound_statement "{\n                            iVar33 = iVar33 + -1;\n                            iVar31 = iVar33;\n                            if (iVar33 == -1) goto LAB_00054b68;\n                            piVar21 = (int *)(iVar41 + -4);\n                          }" ({ "{") (expression_statement "iVar33 = iVar33 + -1;" (assignment_expression "iVar33 = iVar33 + -1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + -1" (identifier "iVar33") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" (identifier "iVar31") (= "=") (identifier "iVar33")) (; ";")) (if_statement "if (iVar33 == -1) goto LAB_00054b68;" (if "if") (parenthesized_expression "(iVar33 == -1)" (( "(") (binary_expression "iVar33 == -1" (identifier "iVar33") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00054b68;" (goto "goto") (statement_identifier "LAB_00054b68") (; ";"))) (expression_statement "piVar21 = (int *)(iVar41 + -4);" (assignment_expression "piVar21 = (int *)(iVar41 + -4)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar41 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar41 + -4)" (( "(") (binary_expression "iVar41 + -4" (identifier "iVar41") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35))" (( "(") (binary_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&\n                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" (parenthesized_expression "(iVar40 == *(int *)(iVar47 + *piVar21 * 4))" (( "(") (binary_expression "iVar40 == *(int *)(iVar47 + *piVar21 * 4)" (identifier "iVar40") (== "==") (pointer_expression "*(int *)(iVar47 + *piVar21 * 4)" (* "*") (cast_expression "(int *)(iVar47 + *piVar21 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + *piVar21 * 4)" (( "(") (binary_expression "iVar47 + *piVar21 * 4" (identifier "iVar47") (+ "+") (binary_expression "*piVar21 * 4" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (* "*") (number_literal "4"))) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35)" (( "(") (comma_expression "iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35" (assignment_expression "iVar41 = iVar41 + -4" (identifier "iVar41") (= "=") (binary_expression "iVar41 + -4" (identifier "iVar41") (+ "+") (number_literal "-4"))) (, ",") (binary_expression "puVar25[*piVar21] < uVar35" (subscript_expression "puVar25[*piVar21]" (identifier "puVar25") ([ "[") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (] "]")) (< "<") (identifier "uVar35"))) () ")"))) () ")")) (; ";")) (} "}")))) (expression_statement "bVar1 = iVar33 < iVar38;" (assignment_expression "bVar1 = iVar33 < iVar38" (identifier "bVar1") (= "=") (binary_expression "iVar33 < iVar38" (identifier "iVar33") (< "<") (identifier "iVar38"))) (; ";")) (expression_statement "iVar31 = iVar33;" (assignment_expression "iVar31 = iVar33" (identifier "iVar31") (= "=") (identifier "iVar33")) (; ";")) (expression_statement "iVar38 = iVar33;" (assignment_expression "iVar38 = iVar33" (identifier "iVar38") (= "=") (identifier "iVar33")) (; ";")) (if_statement "if (bVar1) {\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\nLAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);\n                          while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }\n                        }" ({ "{") (labeled_statement "LAB_00054b68:\n                          piVar21 = (int *)(iVar17 + iVar48 + 4);" (statement_identifier "LAB_00054b68") (: ":") (expression_statement "piVar21 = (int *)(iVar17 + iVar48 + 4);" (assignment_expression "piVar21 = (int *)(iVar17 + iVar48 + 4)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar17 + iVar48 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar48 + 4)" (( "(") (binary_expression "iVar17 + iVar48 + 4" (binary_expression "iVar17 + iVar48" (identifier "iVar17") (+ "+") (identifier "iVar48")) (+ "+") (number_literal "4")) () ")")))) (; ";"))) (while_statement "while( true ) {\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                            *piVar21 = iVar36;\n                            iVar38 = iVar31;\n                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;\n                            iVar36 = piVar21[-2];\n                            piVar21 = piVar21 + -1;\n                          }" ({ "{") (expression_statement "*piVar21 = iVar36;" (assignment_expression "*piVar21 = iVar36" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (identifier "iVar36")) (; ";")) (expression_statement "iVar38 = iVar31;" (assignment_expression "iVar38 = iVar31" (identifier "iVar38") (= "=") (identifier "iVar31")) (; ";")) (if_statement "if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;" (if "if") (parenthesized_expression "((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1)" (( "(") (binary_expression "(int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1" (cast_expression "(int *)(iVar17 + 4 + iVar33 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 4 + iVar33 * 4)" (( "(") (binary_expression "iVar17 + 4 + iVar33 * 4" (binary_expression "iVar17 + 4" (identifier "iVar17") (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar33 * 4" (identifier "iVar33") (* "*") (number_literal "4"))) () ")"))) (== "==") (binary_expression "piVar21 + -1" (identifier "piVar21") (+ "+") (number_literal "-1"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar36 = piVar21[-2];" (assignment_expression "iVar36 = piVar21[-2]" (identifier "iVar36") (= "=") (subscript_expression "piVar21[-2]" (identifier "piVar21") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "piVar21 = piVar21 + -1;" (assignment_expression "piVar21 = piVar21 + -1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + -1" (identifier "piVar21") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00054b90:\n                      iVar24 = iVar24 + 1;" (statement_identifier "LAB_00054b90") (: ":") (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;" (assignment_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45" (pointer_expression "*(uint *)(iVar17 + (iVar38 + 1) * 4)" (* "*") (cast_expression "(uint *)(iVar17 + (iVar38 + 1) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + (iVar38 + 1) * 4)" (( "(") (binary_expression "iVar17 + (iVar38 + 1) * 4" (identifier "iVar17") (+ "+") (binary_expression "(iVar38 + 1) * 4" (parenthesized_expression "(iVar38 + 1)" (( "(") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar45")) (; ";")) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" (identifier "uVar45") (= "=") (binary_expression "uVar45 + 1" (identifier "uVar45") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" (identifier "puVar29") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar45 == uVar28) goto LAB_00054bb0;" (if "if") (parenthesized_expression "(uVar45 == uVar28)" (( "(") (binary_expression "uVar45 == uVar28" (identifier "uVar45") (== "==") (identifier "uVar28")) () ")")) (goto_statement "goto LAB_00054bb0;" (goto "goto") (statement_identifier "LAB_00054bb0") (; ";"))) (} "}"))) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" (identifier "uVar45") (= "=") (binary_expression "uVar45 + 1" (identifier "uVar45") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar29 = puVar29 + 1;" (assignment_expression "puVar29 = puVar29 + 1" (identifier "puVar29") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar45 != uVar28)" (( "(") (binary_expression "uVar45 != uVar28" (identifier "uVar45") (!= "!=") (identifier "uVar28")) () ")")) (; ";")) (labeled_statement "LAB_00054bb0:\n                  if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" (statement_identifier "LAB_00054bb0") (: ":") (if_statement "if (bVar1) {\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n                    *(int *)(puVar6 + -0x18f4) = iVar24;\n                  }" ({ "{") (expression_statement "*(int *)(puVar6 + -0x18f4) = iVar24;" (assignment_expression "*(int *)(puVar6 + -0x18f4) = iVar24" (pointer_expression "*(int *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(int *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")")))) (= "=") (identifier "iVar24")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar10 = PTR_base_0008da48;" (assignment_expression "puVar10 = PTR_base_0008da48" (identifier "puVar10") (= "=") (identifier "PTR_base_0008da48")) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 << 2)" (( "(") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  uVar18 = xmalloc();\n                  *(undefined4 *)puVar10 = uVar18;\n                  puVar4 = PTR_table_0008da58;\n                  puVar7 = PTR_DAT_0008d618;\n                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);\n                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }\n                }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)puVar10 = uVar18;" (assignment_expression "*(undefined4 *)puVar10 = uVar18" (pointer_expression "*(undefined4 *)puVar10" (* "*") (cast_expression "(undefined4 *)puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar4 = PTR_table_0008da58;" (assignment_expression "puVar4 = PTR_table_0008da58" (identifier "puVar4") (= "=") (identifier "PTR_table_0008da58")) (; ";")) (expression_statement "puVar7 = PTR_DAT_0008d618;" (assignment_expression "puVar7 = PTR_DAT_0008d618" (identifier "puVar7") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);" (assignment_expression "puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(*(uint *)(puVar6 + -0x18f4) << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) << 2)" (( "(") (binary_expression "*(uint *)(puVar6 + -0x18f4) << 2" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(uint *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")")))) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)" (( "(") (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0" (binary_expression "*(uint *)(puVar6 + -0x18f4) >> 0x1e" (pointer_expression "*(uint *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(uint *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")")))) (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    uVar18 = xmalloc();\n                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;\n                    puVar14 = PTR_conflict_table_0008da64;\n                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);\n                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar4 = uVar18;\n                    uVar18 = xcalloc(uVar27,4);\n                    uVar28 = *(uint *)(puVar7 + -0x2e50);\n                    *(undefined4 *)puVar14 = uVar18;\n                    puVar12 = PTR_check_0008da60;\n                    puVar11 = PTR_high_0008da44;\n                    puVar5 = PTR_DAT_0008d618;\n                    puVar29 = (uint *)(uVar28 << 2);\n                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }\n                  }" ({ "{") (expression_statement "uVar18 = xmalloc();" (assignment_expression "uVar18 = xmalloc()" (identifier "uVar18") (= "=") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + -0x18f8) = uVar18;" (assignment_expression "*(undefined4 *)(puVar7 + -0x18f8) = uVar18" (pointer_expression "*(undefined4 *)(puVar7 + -0x18f8)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x18f8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x18f8)" (( "(") (binary_expression "puVar7 + -0x18f8" (identifier "puVar7") (+ "+") (number_literal "-0x18f8")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar14 = PTR_conflict_table_0008da64;" (assignment_expression "puVar14 = PTR_conflict_table_0008da64" (identifier "puVar14") (= "=") (identifier "PTR_conflict_table_0008da64")) (; ";")) (expression_statement "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);" (assignment_expression "uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4)" (identifier "xcalloc") (argument_list "(*(undefined4 *)(puVar7 + -0x2e50),4)" (( "(") (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")")))) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(puVar7 + -0x2e50);" (assignment_expression "uVar27 = *(undefined4 *)(puVar7 + -0x2e50)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(undefined4 *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = xcalloc(uVar27,4);" (assignment_expression "uVar18 = xcalloc(uVar27,4)" (identifier "uVar18") (= "=") (call_expression "xcalloc(uVar27,4)" (identifier "xcalloc") (argument_list "(uVar27,4)" (( "(") (identifier "uVar27") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar28 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar28 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" (* "*") (cast_expression "(undefined4 *)puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar12 = PTR_check_0008da60;" (assignment_expression "puVar12 = PTR_check_0008da60" (identifier "puVar12") (= "=") (identifier "PTR_check_0008da60")) (; ";")) (expression_statement "puVar11 = PTR_high_0008da44;" (assignment_expression "puVar11 = PTR_high_0008da44" (identifier "puVar11") (= "=") (identifier "PTR_high_0008da44")) (; ";")) (expression_statement "puVar5 = PTR_DAT_0008d618;" (assignment_expression "puVar5 = PTR_DAT_0008d618" (identifier "puVar5") (= "=") (identifier "PTR_DAT_0008d618")) (; ";")) (expression_statement "puVar29 = (uint *)(uVar28 << 2);" (assignment_expression "puVar29 = (uint *)(uVar28 << 2)" (identifier "puVar29") (= "=") (cast_expression "(uint *)(uVar28 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar28 << 2)" (( "(") (binary_expression "uVar28 << 2" (identifier "uVar28") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" (if "if") (parenthesized_expression "((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0))" (( "(") (binary_expression "(-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)" (parenthesized_expression "(-1 < (int)puVar29)" (( "(") (binary_expression "-1 < (int)puVar29" (number_literal "-1") (< "<") (cast_expression "(int)puVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar29"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 >> 0x1e == 0)" (( "(") (binary_expression "uVar28 >> 0x1e == 0" (binary_expression "uVar28 >> 0x1e" (identifier "uVar28") (>> ">>") (number_literal "0x1e")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                      puVar22 = (undefined4 *)xmalloc();\n                      *(undefined4 *)(puVar5 + -0x1904) = 0;\n                      *(undefined4 **)puVar12 = puVar22;\n                      *(undefined4 *)puVar11 = 0;\n                      if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }\n                      if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }\n                      puVar8 = PTR_trace_flag_0008d64c;\n                      iVar24 = 0;\n                      local_6c = *(int **)(puVar6 + -0x18f0);\n                      iVar17 = *(int *)(puVar2 + -0x18e4);\n                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);\n                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);\n                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);\n                      if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }\n                      puVar23 = PTR_DAT_0008d800 + -0x470c;\nLAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;\n                      piVar20 = (int *)((int)local_6c + iVar24 * 4);\n                      iVar47 = *piVar20;\n                      piVar34 = puVar46 + iVar47;\n                      piVar26 = (int *)puVar30[iVar47];\n                      piVar21 = puVar22 + iVar47;\n                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);\n                      if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }\n                      local_6c = (int *)*piVar34;\n                      local_64 = (undefined4 *)*piVar21;\n                      if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);\n                      iVar17 = *local_6c;\n                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;\n                      if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }\nLAB_00055104:\n                      uVar35 = 0;\n                      piVar21 = local_6c;\n                      do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );\n                    }" ({ "{") (expression_statement "puVar22 = (undefined4 *)xmalloc();" (assignment_expression "puVar22 = (undefined4 *)xmalloc()" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)xmalloc()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar5 + -0x1904) = 0;" (assignment_expression "*(undefined4 *)(puVar5 + -0x1904) = 0" (pointer_expression "*(undefined4 *)(puVar5 + -0x1904)" (* "*") (cast_expression "(undefined4 *)(puVar5 + -0x1904)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x1904)" (( "(") (binary_expression "puVar5 + -0x1904" (identifier "puVar5") (+ "+") (number_literal "-0x1904")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 **)puVar12 = puVar22;" (assignment_expression "*(undefined4 **)puVar12 = puVar22" (pointer_expression "*(undefined4 **)puVar12" (* "*") (cast_expression "(undefined4 **)puVar12" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar12"))) (= "=") (identifier "puVar22")) (; ";")) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" (* "*") (cast_expression "(undefined4 *)puVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *(int *)puVar13) {\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" (if "if") (parenthesized_expression "(0 < *(int *)puVar13)" (( "(") (binary_expression "0 < *(int *)puVar13" (number_literal "0") (< "<") (pointer_expression "*(int *)puVar13" (* "*") (cast_expression "(int *)puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) () ")")) (compound_statement "{\n                        iVar17 = 0;\n                        puVar30 = *(undefined4 **)puVar10;\n                        do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);\n                      }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar30 = *(undefined4 **)puVar10;" (assignment_expression "puVar30 = *(undefined4 **)puVar10" (identifier "puVar30") (= "=") (pointer_expression "*(undefined4 **)puVar10" (* "*") (cast_expression "(undefined4 **)puVar10" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar10")))) (; ";")) (do_statement "do {\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        } while (iVar17 < *(int *)puVar13);" (do "do") (compound_statement "{\n                          iVar17 = iVar17 + 1;\n                          *puVar30 = 0x80000000;\n                          puVar30 = puVar30 + 1;\n                        }" ({ "{") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar30 = 0x80000000;" (assignment_expression "*puVar30 = 0x80000000" (pointer_expression "*puVar30" (* "*") (identifier "puVar30")) (= "=") (number_literal "0x80000000")) (; ";")) (expression_statement "puVar30 = puVar30 + 1;" (assignment_expression "puVar30 = puVar30 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 1" (identifier "puVar30") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 < *(int *)puVar13)" (( "(") (binary_expression "iVar17 < *(int *)puVar13" (identifier "iVar17") (< "<") (pointer_expression "*(int *)puVar13" (* "*") (cast_expression "(int *)puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) () ")")) (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(puVar7 + -0x2e50)) {\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" (if "if") (parenthesized_expression "(0 < *(int *)(puVar7 + -0x2e50))" (( "(") (binary_expression "0 < *(int *)(puVar7 + -0x2e50)" (number_literal "0") (< "<") (pointer_expression "*(int *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(int *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) () ")")) (compound_statement "{\n                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);\n                        do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);\n                      }" ({ "{") (expression_statement "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);" (assignment_expression "puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50)" (identifier "puVar30") (= "=") (binary_expression "puVar22 + *(int *)(puVar7 + -0x2e50)" (identifier "puVar22") (+ "+") (pointer_expression "*(int *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(int *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")")))))) (; ";")) (do_statement "do {\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        } while (puVar30 != puVar22);" (do "do") (compound_statement "{\n                          *puVar22 = 0xffffffff;\n                          puVar22 = puVar22 + 1;\n                        }" ({ "{") (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar30 != puVar22)" (( "(") (binary_expression "puVar30 != puVar22" (identifier "puVar30") (!= "!=") (identifier "puVar22")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar8 = PTR_trace_flag_0008d64c;" (assignment_expression "puVar8 = PTR_trace_flag_0008d64c" (identifier "puVar8") (= "=") (identifier "PTR_trace_flag_0008d64c")) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" (identifier "local_6c") (= "=") (pointer_expression "*(int **)(puVar6 + -0x18f0)" (* "*") (cast_expression "(int **)(puVar6 + -0x18f0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x18f0)" (( "(") (binary_expression "puVar6 + -0x18f0" (identifier "puVar6") (+ "+") (number_literal "-0x18f0")) () ")"))))) (; ";")) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18e4)" (* "*") (cast_expression "(int *)(puVar2 + -0x18e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")"))))) (; ";")) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" (identifier "puVar46") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18dc)" (( "(") (binary_expression "puVar2 + -0x18dc" (identifier "puVar2") (+ "+") (number_literal "-0x18dc")) () ")"))))) (; ";")) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18e0)" (( "(") (binary_expression "puVar2 + -0x18e0" (identifier "puVar2") (+ "+") (number_literal "-0x18e0")) () ")"))))) (; ";")) (if_statement "if (*(int *)(puVar6 + -0x18f4) < 1) {\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" (if "if") (parenthesized_expression "(*(int *)(puVar6 + -0x18f4) < 1)" (( "(") (binary_expression "*(int *)(puVar6 + -0x18f4) < 1" (pointer_expression "*(int *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(int *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                        iVar47 = *(int *)puVar10;\n                        piVar21 = *(int **)(puVar7 + -0x18f8);\nLAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);\n                        uVar27 = *(undefined4 *)puVar4;\n                        iVar24 = *(int *)puVar11;\n                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;\n                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);\n                        puVar2 = PTR_free_0008df9c;\n                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;\n                        (*(code *)puVar2)(piVar21);\n                        (*(code *)PTR_free_0008df9c)(local_6c);\n                        (*(code *)PTR_free_0008df9c)(iVar17);\n                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));\n                        if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }\n                        (*(code *)PTR_free_0008df9c)(puVar46);\n                        (*(code *)PTR_free_0008df9c)(puVar22);\n                        (*(code *)PTR_free_0008df9c)(puVar30);\n                        return;\n                      }" ({ "{") (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar7 + -0x18f8)" (* "*") (cast_expression "(int **)(puVar7 + -0x18f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x18f8)" (( "(") (binary_expression "puVar7 + -0x18f8" (identifier "puVar7") (+ "+") (number_literal "-0x18f8")) () ")"))))) (; ";")) (labeled_statement "LAB_00054f28:\n                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" (statement_identifier "LAB_00054f28") (: ":") (expression_statement "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);" (assignment_expression "uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13)" (identifier "uVar18") (= "=") (call_expression "FUN_000541a0(iVar47,*(undefined4 *)puVar13)" (identifier "FUN_000541a0") (argument_list "(iVar47,*(undefined4 *)puVar13)" (( "(") (identifier "iVar47") (, ",") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) () ")")))) (; ";"))) (expression_statement "uVar27 = *(undefined4 *)puVar4;" (assignment_expression "uVar27 = *(undefined4 *)puVar4" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "iVar24 = *(int *)puVar11;" (assignment_expression "iVar24 = *(int *)puVar11" (identifier "iVar24") (= "=") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) (; ";")) (expression_statement "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18;" (assignment_expression "*(undefined4 *)PTR_base_ninf_0008da50 = uVar18" (pointer_expression "*(undefined4 *)PTR_base_ninf_0008da50" (* "*") (cast_expression "(undefined4 *)PTR_base_ninf_0008da50" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_base_ninf_0008da50"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = FUN_000541a0(uVar27,iVar24 + 1);" (assignment_expression "uVar18 = FUN_000541a0(uVar27,iVar24 + 1)" (identifier "uVar18") (= "=") (call_expression "FUN_000541a0(uVar27,iVar24 + 1)" (identifier "FUN_000541a0") (argument_list "(uVar27,iVar24 + 1)" (( "(") (identifier "uVar27") (, ",") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_free_0008df9c;" (assignment_expression "puVar2 = PTR_free_0008df9c" (identifier "puVar2") (= "=") (identifier "PTR_free_0008df9c")) (; ";")) (expression_statement "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18;" (assignment_expression "*(undefined4 *)PTR_table_ninf_0008da5c = uVar18" (pointer_expression "*(undefined4 *)PTR_table_ninf_0008da5c" (* "*") (cast_expression "(undefined4 *)PTR_table_ninf_0008da5c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_table_ninf_0008da5c"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "(*(code *)puVar2)(piVar21);" (call_expression "(*(code *)puVar2)(piVar21)" (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 "(piVar21)" (( "(") (identifier "piVar21") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(local_6c);" (call_expression "(*(code *)PTR_free_0008df9c)(local_6c)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(iVar17);" (call_expression "(*(code *)PTR_free_0008df9c)(iVar17)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));" (call_expression "(*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8))" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*(undefined4 *)(puVar3 + -0x18e8))" (( "(") (pointer_expression "*(undefined4 *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(undefined4 *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")")))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)puVar13) {\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" (if "if") (parenthesized_expression "(0 < *(int *)puVar13)" (( "(") (binary_expression "0 < *(int *)puVar13" (number_literal "0") (< "<") (pointer_expression "*(int *)puVar13" (* "*") (cast_expression "(int *)puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) () ")")) (compound_statement "{\n                          iVar17 = 0;\n                          puVar42 = puVar30;\n                          puVar43 = puVar22;\n                          puVar44 = puVar46;\n                          do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);\n                        }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar42 = puVar30;" (assignment_expression "puVar42 = puVar30" (identifier "puVar42") (= "=") (identifier "puVar30")) (; ";")) (expression_statement "puVar43 = puVar22;" (assignment_expression "puVar43 = puVar22" (identifier "puVar43") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "puVar44 = puVar46;" (assignment_expression "puVar44 = puVar46" (identifier "puVar44") (= "=") (identifier "puVar46")) (; ";")) (do_statement "do {\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          } while (iVar17 < *(int *)puVar13);" (do "do") (compound_statement "{\n                            uVar18 = *puVar44;\n                            iVar17 = iVar17 + 1;\n                            puVar44 = puVar44 + 1;\n                            (*(code *)PTR_free_0008df9c)(uVar18);\n                            (*(code *)PTR_free_0008df9c)(*puVar43);\n                            (*(code *)PTR_free_0008df9c)(*puVar42);\n                            puVar42 = puVar42 + 1;\n                            puVar43 = puVar43 + 1;\n                          }" ({ "{") (expression_statement "uVar18 = *puVar44;" (assignment_expression "uVar18 = *puVar44" (identifier "uVar18") (= "=") (pointer_expression "*puVar44" (* "*") (identifier "puVar44"))) (; ";")) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar44 = puVar44 + 1;" (assignment_expression "puVar44 = puVar44 + 1" (identifier "puVar44") (= "=") (binary_expression "puVar44 + 1" (identifier "puVar44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(uVar18);" (call_expression "(*(code *)PTR_free_0008df9c)(uVar18)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(uVar18)" (( "(") (identifier "uVar18") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar43);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar43)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*puVar43)" (( "(") (pointer_expression "*puVar43" (* "*") (identifier "puVar43")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(*puVar42);" (call_expression "(*(code *)PTR_free_0008df9c)(*puVar42)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(*puVar42)" (( "(") (pointer_expression "*puVar42" (* "*") (identifier "puVar42")) () ")"))) (; ";")) (expression_statement "puVar42 = puVar42 + 1;" (assignment_expression "puVar42 = puVar42 + 1" (identifier "puVar42") (= "=") (binary_expression "puVar42 + 1" (identifier "puVar42") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar43 = puVar43 + 1;" (assignment_expression "puVar43 = puVar43 + 1" (identifier "puVar43") (= "=") (binary_expression "puVar43 + 1" (identifier "puVar43") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 < *(int *)puVar13)" (( "(") (binary_expression "iVar17 < *(int *)puVar13" (identifier "iVar17") (< "<") (pointer_expression "*(int *)puVar13" (* "*") (cast_expression "(int *)puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar46);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar46)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(puVar46)" (( "(") (identifier "puVar46") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar22);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar22)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(puVar22)" (( "(") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0008df9c)(puVar30);" (call_expression "(*(code *)PTR_free_0008df9c)(puVar30)" (parenthesized_expression "(*(code *)PTR_free_0008df9c)" (( "(") (pointer_expression "*(code *)PTR_free_0008df9c" (* "*") (cast_expression "(code *)PTR_free_0008df9c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0008df9c"))) () ")")) (argument_list "(puVar30)" (( "(") (identifier "puVar30") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar23 = PTR_DAT_0008d800 + -0x470c;" (assignment_expression "puVar23 = PTR_DAT_0008d800 + -0x470c" (identifier "puVar23") (= "=") (binary_expression "PTR_DAT_0008d800 + -0x470c" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x470c"))) (; ";")) (labeled_statement "LAB_00054d58:\n                      puVar16 = PTR_stderr_0008dfb4;" (statement_identifier "LAB_00054d58") (: ":") (expression_statement "puVar16 = PTR_stderr_0008dfb4;" (assignment_expression "puVar16 = PTR_stderr_0008dfb4" (identifier "puVar16") (= "=") (identifier "PTR_stderr_0008dfb4")) (; ";"))) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)local_6c + iVar24 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + iVar24 * 4)" (( "(") (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (binary_expression "iVar24 * 4" (identifier "iVar24") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar47 = *piVar20;" (assignment_expression "iVar47 = *piVar20" (identifier "iVar47") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "piVar34 = puVar46 + iVar47;" (assignment_expression "piVar34 = puVar46 + iVar47" (identifier "piVar34") (= "=") (binary_expression "puVar46 + iVar47" (identifier "puVar46") (+ "+") (identifier "iVar47"))) (; ";")) (expression_statement "piVar26 = (int *)puVar30[iVar47];" (assignment_expression "piVar26 = (int *)puVar30[iVar47]" (identifier "piVar26") (= "=") (cast_expression "(int *)puVar30[iVar47]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar30[iVar47]" (identifier "puVar30") ([ "[") (identifier "iVar47") (] "]")))) (; ";")) (expression_statement "piVar21 = puVar22 + iVar47;" (assignment_expression "piVar21 = puVar22 + iVar47" (identifier "piVar21") (= "=") (binary_expression "puVar22 + iVar47" (identifier "puVar22") (+ "+") (identifier "iVar47"))) (; ";")) (expression_statement "uVar28 = *(uint *)(iVar17 + iVar47 * 4);" (assignment_expression "uVar28 = *(uint *)(iVar17 + iVar47 * 4)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar17 + iVar47 * 4)" (* "*") (cast_expression "(uint *)(iVar17 + iVar47 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar47 * 4)" (( "(") (binary_expression "iVar17 + iVar47 * 4" (identifier "iVar17") (+ "+") (binary_expression "iVar47 * 4" (identifier "iVar47") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar47 < *(int *)puVar9) {\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(iVar47 < *(int *)puVar9)" (( "(") (binary_expression "iVar47 < *(int *)puVar9" (identifier "iVar47") (< "<") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }\nLAB_00054de4:\n                        iVar38 = iVar24 + -1;\n                        if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }\n                      }" ({ "{") (if_statement "if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" (if "if") (parenthesized_expression "((piVar26 != (int *)0x0) && (uVar28 != 0))" (( "(") (binary_expression "(piVar26 != (int *)0x0) && (uVar28 != 0)" (parenthesized_expression "(piVar26 != (int *)0x0)" (( "(") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 != 0)" (( "(") (binary_expression "uVar28 != 0" (identifier "uVar28") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                          if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }\n                          local_64 = (undefined4 *)*piVar21;\nLAB_000550cc:\n                          local_6c = (int *)*piVar34;\n                          goto LAB_000550d4;\n                        }" ({ "{") (if_statement "if (*piVar26 == 0) {\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" (if "if") (parenthesized_expression "(*piVar26 == 0)" (( "(") (binary_expression "*piVar26 == 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                            uVar45 = 0;\n                            piVar32 = piVar26;\n                            do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);\n                          }" ({ "{") (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar32 = piVar26;" (assignment_expression "piVar32 = piVar26" (identifier "piVar32") (= "=") (identifier "piVar26")) (; ";")) (do_statement "do {\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            } while (*piVar32 == 0);" (do "do") (compound_statement "{\n                              piVar32 = piVar32 + 1;\n                              uVar45 = uVar45 + 1;\n                              if (uVar45 == uVar28) goto LAB_00054de4;\n                            }" ({ "{") (expression_statement "piVar32 = piVar32 + 1;" (assignment_expression "piVar32 = piVar32 + 1" (identifier "piVar32") (= "=") (binary_expression "piVar32 + 1" (identifier "piVar32") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" (identifier "uVar45") (= "=") (binary_expression "uVar45 + 1" (identifier "uVar45") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar45 == uVar28) goto LAB_00054de4;" (if "if") (parenthesized_expression "(uVar45 == uVar28)" (( "(") (binary_expression "uVar45 == uVar28" (identifier "uVar45") (== "==") (identifier "uVar28")) () ")")) (goto_statement "goto LAB_00054de4;" (goto "goto") (statement_identifier "LAB_00054de4") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*piVar32 == 0)" (( "(") (binary_expression "*piVar32 == 0" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" (identifier "local_64") (= "=") (cast_expression "(undefined4 *)*piVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (labeled_statement "LAB_000550cc:\n                          local_6c = (int *)*piVar34;" (statement_identifier "LAB_000550cc") (: ":") (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" (identifier "local_6c") (= "=") (cast_expression "(int *)*piVar34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar34" (* "*") (identifier "piVar34")))) (; ";"))) (goto_statement "goto LAB_000550d4;" (goto "goto") (statement_identifier "LAB_000550d4") (; ";")) (} "}"))) (labeled_statement "LAB_00054de4:\n                        iVar38 = iVar24 + -1;" (statement_identifier "LAB_00054de4") (: ":") (expression_statement "iVar38 = iVar24 + -1;" (assignment_expression "iVar38 = iVar24 + -1" (identifier "iVar38") (= "=") (binary_expression "iVar24 + -1" (identifier "iVar24") (+ "+") (number_literal "-1"))) (; ";"))) (if_statement "if (iVar24 != 0) {\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          iVar33 = piVar20[-1];\n                          iVar31 = *(int *)(puVar3 + -0x18e8);\n                          iVar40 = iVar33 * 4;\n                          iVar47 = *(int *)(iVar31 + iVar47 * 4);\n                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }\n                        }" ({ "{") (expression_statement "iVar33 = piVar20[-1];" (assignment_expression "iVar33 = piVar20[-1]" (identifier "iVar33") (= "=") (subscript_expression "piVar20[-1]" (identifier "piVar20") ([ "[") (number_literal "-1") (] "]"))) (; ";")) (expression_statement "iVar31 = *(int *)(puVar3 + -0x18e8);" (assignment_expression "iVar31 = *(int *)(puVar3 + -0x18e8)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(puVar3 + -0x18e8)" (* "*") (cast_expression "(int *)(puVar3 + -0x18e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -0x18e8)" (( "(") (binary_expression "puVar3 + -0x18e8" (identifier "puVar3") (+ "+") (number_literal "-0x18e8")) () ")"))))) (; ";")) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" (identifier "iVar40") (= "=") (binary_expression "iVar33 * 4" (identifier "iVar33") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar47 = *(int *)(iVar31 + iVar47 * 4);" (assignment_expression "iVar47 = *(int *)(iVar31 + iVar47 * 4)" (identifier "iVar47") (= "=") (pointer_expression "*(int *)(iVar31 + iVar47 * 4)" (* "*") (cast_expression "(int *)(iVar31 + iVar47 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar47 * 4)" (( "(") (binary_expression "iVar31 + iVar47 * 4" (identifier "iVar31") (+ "+") (binary_expression "iVar47 * 4" (identifier "iVar47") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" (if "if") (parenthesized_expression "((*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28))" (( "(") (binary_expression "(*(int *)(iVar31 + iVar40) == iVar47) &&\n                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" (parenthesized_expression "(*(int *)(iVar31 + iVar40) == iVar47)" (( "(") (binary_expression "*(int *)(iVar31 + iVar40) == iVar47" (pointer_expression "*(int *)(iVar31 + iVar40)" (* "*") (cast_expression "(int *)(iVar31 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar40)" (( "(") (binary_expression "iVar31 + iVar40" (identifier "iVar31") (+ "+") (identifier "iVar40")) () ")")))) (== "==") (identifier "iVar47")) () ")")) (&& "&&") (parenthesized_expression "(piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)" (( "(") (comma_expression "piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28" (assignment_expression "piVar32 = piVar20" (identifier "piVar32") (= "=") (identifier "piVar20")) (, ",") (binary_expression "*(uint *)(iVar17 + iVar40) == uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" (* "*") (cast_expression "(uint *)(iVar17 + iVar40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar40)" (( "(") (binary_expression "iVar17 + iVar40" (identifier "iVar17") (+ "+") (identifier "iVar40")) () ")")))) (== "==") (identifier "uVar28"))) () ")"))) () ")")) (compound_statement "{\n                            do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );\n                          }" ({ "{") (do_statement "do {\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            } while( true );" (do "do") (compound_statement "{\n                              iVar48 = 1;\n                              iVar36 = 0;\n                              if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }\n                              while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }\n                              iVar38 = iVar38 + -1;\n                              if (iVar38 == -1) goto LAB_000550cc;\n                              iVar33 = piVar32[-2];\n                              iVar40 = iVar33 * 4;\n                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;\n                            }" ({ "{") (expression_statement "iVar48 = 1;" (assignment_expression "iVar48 = 1" (identifier "iVar48") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" (identifier "iVar36") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar28 + 1 == 1) {\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" (if "if") (parenthesized_expression "(uVar28 + 1 == 1)" (( "(") (binary_expression "uVar28 + 1 == 1" (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00054edc:\n                                if (iVar33 < 0) break;\n                                iVar47 = *(int *)puVar10;\n                                piVar21 = *(int **)(puVar7 + -0x18f8);\n                                iVar38 = *(int *)(iVar47 + iVar40);\n                                piVar34 = piVar21 + iVar24;\n                                goto LAB_00054f00;\n                              }" ({ "{") (labeled_statement "LAB_00054edc:\n                                if (iVar33 < 0) break;" (statement_identifier "LAB_00054edc") (: ":") (if_statement "if (iVar33 < 0) break;" (if "if") (parenthesized_expression "(iVar33 < 0)" (( "(") (binary_expression "iVar33 < 0" (identifier "iVar33") (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar7 + -0x18f8)" (* "*") (cast_expression "(int **)(puVar7 + -0x18f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x18f8)" (( "(") (binary_expression "puVar7 + -0x18f8" (identifier "puVar7") (+ "+") (number_literal "-0x18f8")) () ")"))))) (; ";")) (expression_statement "iVar38 = *(int *)(iVar47 + iVar40);" (assignment_expression "iVar38 = *(int *)(iVar47 + iVar40)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(iVar47 + iVar40)" (* "*") (cast_expression "(int *)(iVar47 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar40)" (( "(") (binary_expression "iVar47 + iVar40" (identifier "iVar47") (+ "+") (identifier "iVar40")) () ")"))))) (; ";")) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" (identifier "piVar34") (= "=") (binary_expression "piVar21 + iVar24" (identifier "piVar21") (+ "+") (identifier "iVar24"))) (; ";")) (goto_statement "goto LAB_00054f00;" (goto "goto") (statement_identifier "LAB_00054f00") (; ";")) (} "}"))) (while_statement "while (((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))\n                              {\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" (while "while") (parenthesized_expression "(((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))" (( "(") (parenthesized_expression "((local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))))" (( "(") (binary_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))) &&\n                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" (parenthesized_expression "(local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)))" (( "(") (comma_expression "local_64 = (undefined4 *)*piVar21,\n                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (assignment_expression "local_64 = (undefined4 *)*piVar21" (identifier "local_64") (= "=") (cast_expression "(undefined4 *)*piVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (, ",") (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36) &&\n                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (binary_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==\n                                      *(int *)((int)local_64 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" (* "*") (cast_expression "(int *)(*(int *)((int)puVar22 + iVar40) + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)puVar22 + iVar40) + iVar36)" (( "(") (binary_expression "*(int *)((int)puVar22 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar22 + iVar40)" (* "*") (cast_expression "(int *)((int)puVar22 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + iVar40)" (( "(") (binary_expression "(int)puVar22 + iVar40" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (identifier "iVar40")) () ")")))) (+ "+") (identifier "iVar36")) () ")")))) (== "==") (pointer_expression "*(int *)((int)local_64 + iVar36)" (* "*") (cast_expression "(int *)((int)local_64 + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + iVar36)" (( "(") (binary_expression "(int)local_64 + iVar36" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (identifier "iVar36")) () ")"))))) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36))" (( "(") (binary_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==\n                                       *(int *)(*piVar34 + iVar36)" (pointer_expression "*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" (* "*") (cast_expression "(int *)(*(int *)((int)puVar46 + iVar40) + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)puVar46 + iVar40) + iVar36)" (( "(") (binary_expression "*(int *)((int)puVar46 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar46 + iVar40)" (* "*") (cast_expression "(int *)((int)puVar46 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar46 + iVar40)" (( "(") (binary_expression "(int)puVar46 + iVar40" (cast_expression "(int)puVar46" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar46")) (+ "+") (identifier "iVar40")) () ")")))) (+ "+") (identifier "iVar36")) () ")")))) (== "==") (pointer_expression "*(int *)(*piVar34 + iVar36)" (* "*") (cast_expression "(int *)(*piVar34 + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar34 + iVar36)" (( "(") (binary_expression "*piVar34 + iVar36" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (+ "+") (identifier "iVar36")) () ")"))))) () ")")))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))" (( "(") (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0))" (( "(") (binary_expression "*(int *)((int)puVar30 + iVar40) == 0 ||\n                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" (binary_expression "*(int *)((int)puVar30 + iVar40) == 0" (pointer_expression "*(int *)((int)puVar30 + iVar40)" (* "*") (cast_expression "(int *)((int)puVar30 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar30 + iVar40)" (( "(") (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar30")) (+ "+") (identifier "iVar40")) () ")")))) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)" (( "(") (binary_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0" (pointer_expression "*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" (* "*") (cast_expression "(int *)(*(int *)((int)puVar30 + iVar40) + iVar36)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)puVar30 + iVar40) + iVar36)" (( "(") (binary_expression "*(int *)((int)puVar30 + iVar40) + iVar36" (pointer_expression "*(int *)((int)puVar30 + iVar40)" (* "*") (cast_expression "(int *)((int)puVar30 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar30 + iVar40)" (( "(") (binary_expression "(int)puVar30 + iVar40" (cast_expression "(int)puVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar30")) (+ "+") (identifier "iVar40")) () ")")))) (+ "+") (identifier "iVar36")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n                                iVar48 = iVar48 + 1;\n                                iVar36 = iVar36 + 4;\n                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;\n                              }" ({ "{") (expression_statement "iVar48 = iVar48 + 1;" (assignment_expression "iVar48 = iVar48 + 1" (identifier "iVar48") (= "=") (binary_expression "iVar48 + 1" (identifier "iVar48") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" (identifier "iVar36") (= "=") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar28 + 1 == iVar48) goto LAB_00054edc;" (if "if") (parenthesized_expression "(uVar28 + 1 == iVar48)" (( "(") (binary_expression "uVar28 + 1 == iVar48" (binary_expression "uVar28 + 1" (identifier "uVar28") (+ "+") (number_literal "1")) (== "==") (identifier "iVar48")) () ")")) (goto_statement "goto LAB_00054edc;" (goto "goto") (statement_identifier "LAB_00054edc") (; ";"))) (} "}"))) (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + -1" (identifier "iVar38") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar38 == -1) goto LAB_000550cc;" (if "if") (parenthesized_expression "(iVar38 == -1)" (( "(") (binary_expression "iVar38 == -1" (identifier "iVar38") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_000550cc;" (goto "goto") (statement_identifier "LAB_000550cc") (; ";"))) (expression_statement "iVar33 = piVar32[-2];" (assignment_expression "iVar33 = piVar32[-2]" (identifier "iVar33") (= "=") (subscript_expression "piVar32[-2]" (identifier "piVar32") ([ "[") (number_literal "-2") (] "]"))) (; ";")) (expression_statement "iVar40 = iVar33 * 4;" (assignment_expression "iVar40 = iVar33 * 4" (identifier "iVar40") (= "=") (binary_expression "iVar33 * 4" (identifier "iVar33") (* "*") (number_literal "4"))) (; ";")) (if_statement "if ((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))\n                              goto LAB_000550cc;" (if "if") (parenthesized_expression "((iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))" (( "(") (binary_expression "(iVar47 != *(int *)(iVar31 + iVar40)) ||\n                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" (parenthesized_expression "(iVar47 != *(int *)(iVar31 + iVar40))" (( "(") (binary_expression "iVar47 != *(int *)(iVar31 + iVar40)" (identifier "iVar47") (!= "!=") (pointer_expression "*(int *)(iVar31 + iVar40)" (* "*") (cast_expression "(int *)(iVar31 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar40)" (( "(") (binary_expression "iVar31 + iVar40" (identifier "iVar31") (+ "+") (identifier "iVar40")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28)" (( "(") (comma_expression "piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28" (assignment_expression "piVar32 = piVar32 + -1" (identifier "piVar32") (= "=") (binary_expression "piVar32 + -1" (identifier "piVar32") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "*(uint *)(iVar17 + iVar40) != uVar28" (pointer_expression "*(uint *)(iVar17 + iVar40)" (* "*") (cast_expression "(uint *)(iVar17 + iVar40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar40)" (( "(") (binary_expression "iVar17 + iVar40" (identifier "iVar17") (+ "+") (identifier "iVar40")) () ")")))) (!= "!=") (identifier "uVar28"))) () ")"))) () ")")) (goto_statement "goto LAB_000550cc;" (goto "goto") (statement_identifier "LAB_000550cc") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_6c = (int *)*piVar34;" (assignment_expression "local_6c = (int *)*piVar34" (identifier "local_6c") (= "=") (cast_expression "(int *)*piVar34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar34" (* "*") (identifier "piVar34")))) (; ";")) (expression_statement "local_64 = (undefined4 *)*piVar21;" (assignment_expression "local_64 = (undefined4 *)*piVar21" (identifier "local_64") (= "=") (cast_expression "(undefined4 *)*piVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (if_statement "if (uVar28 == 0) {\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0008de30" (* "*") (cast_expression "(code *)PTR___assert_fail_0008de30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0008de30"))) () ")")) (argument_list "(PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,\n                                   PTR_DAT_0008d800 + -0x46e0)" (( "(") (binary_expression "PTR_DAT_0008d800 + -0x4728" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x4728")) (, ",") (binary_expression "PTR_DAT_0008d800 + -0x4750" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x4750")) (, ",") (number_literal "0x28a") (, ",") (binary_expression "PTR_DAT_0008d800 + -0x46e0" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x46e0")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000550d4:\n                      uVar45 = *(uint *)(puVar7 + -0x2e50);" (statement_identifier "LAB_000550d4") (: ":") (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar45") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";"))) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" (identifier "iVar17") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (expression_statement "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;" (assignment_expression "iVar38 = *(int *)(puVar5 + -0x1904) - iVar17" (identifier "iVar38") (= "=") (binary_expression "*(int *)(puVar5 + -0x1904) - iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" (* "*") (cast_expression "(int *)(puVar5 + -0x1904)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x1904)" (( "(") (binary_expression "puVar5 + -0x1904" (identifier "puVar5") (+ "+") (number_literal "-0x1904")) () ")")))) (- "-") (identifier "iVar17"))) (; ";")) (if_statement "if ((int)uVar45 <= iVar38) {\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" (if "if") (parenthesized_expression "((int)uVar45 <= iVar38)" (( "(") (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar45")) (<= "<=") (identifier "iVar38")) () ")")) (compound_statement "{\nLAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);\n                        return;\n                      }" ({ "{") (labeled_statement "LAB_00055518:\n                        (*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" (statement_identifier "LAB_00055518") (: ":") (expression_statement "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0);" (call_expression "(*(code *)PTR___assert_fail_0008de30)\n                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" (parenthesized_expression "(*(code *)PTR___assert_fail_0008de30)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_0008de30" (* "*") (cast_expression "(code *)PTR___assert_fail_0008de30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_0008de30"))) () ")")) (argument_list "(PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,\n                                   PTR_DAT_0008d800 + -0x46e0)" (( "(") (binary_expression "PTR_DAT_0008d800 + -0x4720" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x4720")) (, ",") (binary_expression "PTR_DAT_0008d800 + -0x4750" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x4750")) (, ",") (number_literal "0x28f") (, ",") (binary_expression "PTR_DAT_0008d800 + -0x46e0" (identifier "PTR_DAT_0008d800") (+ "+") (number_literal "-0x46e0")) () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00055104:\n                      uVar35 = 0;" (statement_identifier "LAB_00055104") (: ":") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";"))) (expression_statement "piVar21 = local_6c;" (assignment_expression "piVar21 = local_6c" (identifier "piVar21") (= "=") (identifier "local_6c")) (; ";")) (do_statement "do {\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      } while( true );" (do "do") (compound_statement "{\n                        piVar21 = piVar21 + 1;\n                        iVar17 = iVar38 + iVar17;\n                        uVar37 = uVar45;\n                        if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }\n                        uVar35 = uVar35 + 1;\n                        if (uVar28 <= uVar35) goto LAB_000552ac;\n                        uVar45 = *(uint *)(puVar7 + -0x2e50);\n                        iVar17 = *piVar21;\n                      }" ({ "{") (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 1" (identifier "piVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar17 = iVar38 + iVar17;" (assignment_expression "iVar17 = iVar38 + iVar17" (identifier "iVar17") (= "=") (binary_expression "iVar38 + iVar17" (identifier "iVar38") (+ "+") (identifier "iVar17"))) (; ";")) (expression_statement "uVar37 = uVar45;" (assignment_expression "uVar37 = uVar45" (identifier "uVar37") (= "=") (identifier "uVar45")) (; ";")) (if_statement "if (iVar17 < (int)uVar45) {\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }\n                        else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" (if "if") (parenthesized_expression "(iVar17 < (int)uVar45)" (( "(") (binary_expression "iVar17 < (int)uVar45" (identifier "iVar17") (< "<") (cast_expression "(int)uVar45" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar45"))) () ")")) (compound_statement "{\nLAB_0005511c:\n                          iVar33 = *(int *)puVar4;\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" ({ "{") (labeled_statement "LAB_0005511c:\n                          iVar33 = *(int *)puVar4;" (statement_identifier "LAB_0005511c") (: ":") (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" (identifier "iVar33") (= "=") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";"))) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" (* "*") (cast_expression "(int *)(iVar33 + iVar17 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + iVar17 * 4)" (( "(") (binary_expression "iVar33 + iVar17 * 4" (identifier "iVar33") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" (else "else") (compound_statement "{\n                          do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);\n                          *(uint *)(puVar7 + -0x2e50) = uVar37;\n                          if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }\n                          puVar29 = *(uint **)puVar4;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar4 = uVar18;\n                          puVar29 = *(uint **)puVar14;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          uVar18 = xrealloc(puVar29);\n                          uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          *(undefined4 *)puVar14 = uVar18;\n                          puVar29 = *(uint **)puVar12;\n                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;\n                          iVar47 = xrealloc();\n                          iVar40 = *(int *)(puVar7 + -0x2e50);\n                          *(int *)puVar12 = iVar47;\n                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;\n                          iVar36 = uVar45 << 2;\n                          iVar33 = *(int *)puVar4;\n                          iVar31 = *(int *)puVar14;\n                          do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);\n                          iVar17 = *(int *)(iVar33 + iVar17 * 4);\n                        }" ({ "{") (do_statement "do {\n                            uVar37 = uVar37 << 1;\n                          } while ((int)uVar37 <= iVar17);" (do "do") (compound_statement "{\n                            uVar37 = uVar37 << 1;\n                          }" ({ "{") (expression_statement "uVar37 = uVar37 << 1;" (assignment_expression "uVar37 = uVar37 << 1" (identifier "uVar37") (= "=") (binary_expression "uVar37 << 1" (identifier "uVar37") (<< "<<") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar37 <= iVar17)" (( "(") (binary_expression "(int)uVar37 <= iVar17" (cast_expression "(int)uVar37" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar37")) (<= "<=") (identifier "iVar17")) () ")")) (; ";")) (expression_statement "*(uint *)(puVar7 + -0x2e50) = uVar37;" (assignment_expression "*(uint *)(puVar7 + -0x2e50) = uVar37" (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")")))) (= "=") (identifier "uVar37")) (; ";")) (if_statement "if ((*(uint *)puVar8 & 4) != 0) {\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" (if "if") (parenthesized_expression "((*(uint *)puVar8 & 4) != 0)" (( "(") (binary_expression "(*(uint *)puVar8 & 4) != 0" (parenthesized_expression "(*(uint *)puVar8 & 4)" (( "(") (binary_expression "*(uint *)puVar8 & 4" (pointer_expression "*(uint *)puVar8" (* "*") (cast_expression "(uint *)puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                            (*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);\n                            uVar37 = *(uint *)(puVar7 + -0x2e50);\n                          }" ({ "{") (expression_statement "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);" (call_expression "(*(code *)PTR___fprintf_chk_0008de68)\n                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" (parenthesized_expression "(*(code *)PTR___fprintf_chk_0008de68)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_0008de68" (* "*") (cast_expression "(code *)PTR___fprintf_chk_0008de68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_0008de68"))) () ")")) (argument_list "(*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37)" (( "(") (pointer_expression "*(undefined4 *)puVar16" (* "*") (cast_expression "(undefined4 *)puVar16" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar16"))) (, ",") (number_literal "1") (, ",") (identifier "puVar23") (, ",") (identifier "uVar45") (, ",") (identifier "uVar37") () ")"))) (; ";")) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar29 = *(uint **)puVar4;" (assignment_expression "puVar29 = *(uint **)puVar4" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)puVar4" (* "*") (cast_expression "(uint **)puVar4" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar4")))) (; ";")) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" (if "if") (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" (( "(") (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" (( "(") (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar37 << 2)" (( "(") (binary_expression "uVar37 << 2" (identifier "uVar37") (<< "<<") (number_literal "2")) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar37 >> 0x1e != 0)" (( "(") (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" (identifier "uVar37") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" (identifier "uVar18") (= "=") (call_expression "xrealloc(puVar29)" (identifier "xrealloc") (argument_list "(puVar29)" (( "(") (identifier "puVar29") () ")")))) (; ";")) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)puVar4 = uVar18;" (assignment_expression "*(undefined4 *)puVar4 = uVar18" (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar29 = *(uint **)puVar14;" (assignment_expression "puVar29 = *(uint **)puVar14" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)puVar14" (* "*") (cast_expression "(uint **)puVar14" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar14")))) (; ";")) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" (if "if") (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" (( "(") (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" (( "(") (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar37 << 2)" (( "(") (binary_expression "uVar37 << 2" (identifier "uVar37") (<< "<<") (number_literal "2")) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar37 >> 0x1e != 0)" (( "(") (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" (identifier "uVar37") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar18 = xrealloc(puVar29);" (assignment_expression "uVar18 = xrealloc(puVar29)" (identifier "uVar18") (= "=") (call_expression "xrealloc(puVar29)" (identifier "xrealloc") (argument_list "(puVar29)" (( "(") (identifier "puVar29") () ")")))) (; ";")) (expression_statement "uVar37 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar37 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)puVar14 = uVar18;" (assignment_expression "*(undefined4 *)puVar14 = uVar18" (pointer_expression "*(undefined4 *)puVar14" (* "*") (cast_expression "(undefined4 *)puVar14" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14"))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "puVar29 = *(uint **)puVar12;" (assignment_expression "puVar29 = *(uint **)puVar12" (identifier "puVar29") (= "=") (pointer_expression "*(uint **)puVar12" (* "*") (cast_expression "(uint **)puVar12" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar12")))) (; ";")) (if_statement "if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;" (if "if") (parenthesized_expression "(((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0))" (( "(") (binary_expression "((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar37 << 2) < 0)" (( "(") (binary_expression "(int)(uVar37 << 2) < 0" (cast_expression "(int)(uVar37 << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar37 << 2)" (( "(") (binary_expression "uVar37 << 2" (identifier "uVar37") (<< "<<") (number_literal "2")) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar37 >> 0x1e != 0)" (( "(") (binary_expression "uVar37 >> 0x1e != 0" (binary_expression "uVar37 >> 0x1e" (identifier "uVar37") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar47 = xrealloc();" (assignment_expression "iVar47 = xrealloc()" (identifier "iVar47") (= "=") (call_expression "xrealloc()" (identifier "xrealloc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar40 = *(int *)(puVar7 + -0x2e50);" (assignment_expression "iVar40 = *(int *)(puVar7 + -0x2e50)" (identifier "iVar40") (= "=") (pointer_expression "*(int *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(int *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "*(int *)puVar12 = iVar47;" (assignment_expression "*(int *)puVar12 = iVar47" (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (identifier "iVar47")) (; ";")) (if_statement "if (iVar40 <= (int)uVar45) goto LAB_0005511c;" (if "if") (parenthesized_expression "(iVar40 <= (int)uVar45)" (( "(") (binary_expression "iVar40 <= (int)uVar45" (identifier "iVar40") (<= "<=") (cast_expression "(int)uVar45" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar45"))) () ")")) (goto_statement "goto LAB_0005511c;" (goto "goto") (statement_identifier "LAB_0005511c") (; ";"))) (expression_statement "iVar36 = uVar45 << 2;" (assignment_expression "iVar36 = uVar45 << 2" (identifier "iVar36") (= "=") (binary_expression "uVar45 << 2" (identifier "uVar45") (<< "<<") (number_literal "2"))) (; ";")) (expression_statement "iVar33 = *(int *)puVar4;" (assignment_expression "iVar33 = *(int *)puVar4" (identifier "iVar33") (= "=") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) (; ";")) (expression_statement "iVar31 = *(int *)puVar14;" (assignment_expression "iVar31 = *(int *)puVar14" (identifier "iVar31") (= "=") (pointer_expression "*(int *)puVar14" (* "*") (cast_expression "(int *)puVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14")))) (; ";")) (do_statement "do {\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          } while (iVar40 << 2 != iVar36);" (do "do") (compound_statement "{\n                            puVar46 = (undefined4 *)(iVar33 + iVar36);\n                            puVar30 = (undefined4 *)(iVar31 + iVar36);\n                            puVar22 = (undefined4 *)(iVar47 + iVar36);\n                            iVar36 = iVar36 + 4;\n                            *puVar46 = 0;\n                            *puVar30 = 0;\n                            *puVar22 = 0xffffffff;\n                          }" ({ "{") (expression_statement "puVar46 = (undefined4 *)(iVar33 + iVar36);" (assignment_expression "puVar46 = (undefined4 *)(iVar33 + iVar36)" (identifier "puVar46") (= "=") (cast_expression "(undefined4 *)(iVar33 + iVar36)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + iVar36)" (( "(") (binary_expression "iVar33 + iVar36" (identifier "iVar33") (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (expression_statement "puVar30 = (undefined4 *)(iVar31 + iVar36);" (assignment_expression "puVar30 = (undefined4 *)(iVar31 + iVar36)" (identifier "puVar30") (= "=") (cast_expression "(undefined4 *)(iVar31 + iVar36)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + iVar36)" (( "(") (binary_expression "iVar31 + iVar36" (identifier "iVar31") (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (expression_statement "puVar22 = (undefined4 *)(iVar47 + iVar36);" (assignment_expression "puVar22 = (undefined4 *)(iVar47 + iVar36)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)(iVar47 + iVar36)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar36)" (( "(") (binary_expression "iVar47 + iVar36" (identifier "iVar47") (+ "+") (identifier "iVar36")) () ")")))) (; ";")) (expression_statement "iVar36 = iVar36 + 4;" (assignment_expression "iVar36 = iVar36 + 4" (identifier "iVar36") (= "=") (binary_expression "iVar36 + 4" (identifier "iVar36") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar46 = 0;" (assignment_expression "*puVar46 = 0" (pointer_expression "*puVar46" (* "*") (identifier "puVar46")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" (* "*") (identifier "puVar30")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*puVar22 = 0xffffffff;" (assignment_expression "*puVar22 = 0xffffffff" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar40 << 2 != iVar36)" (( "(") (binary_expression "iVar40 << 2 != iVar36" (binary_expression "iVar40 << 2" (identifier "iVar40") (<< "<<") (number_literal "2")) (!= "!=") (identifier "iVar36")) () ")")) (; ";")) (expression_statement "iVar17 = *(int *)(iVar33 + iVar17 * 4);" (assignment_expression "iVar17 = *(int *)(iVar33 + iVar17 * 4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar33 + iVar17 * 4)" (* "*") (cast_expression "(int *)(iVar33 + iVar17 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + iVar17 * 4)" (( "(") (binary_expression "iVar33 + iVar17 * 4" (identifier "iVar33") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar17 != 0) {\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          uVar45 = *(uint *)(puVar7 + -0x2e50);\n                          goto LAB_00055138;\n                        }" ({ "{") (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar45") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (goto_statement "goto LAB_00055138;" (goto "goto") (statement_identifier "LAB_00055138") (; ";")) (} "}"))) (expression_statement "uVar35 = uVar35 + 1;" (assignment_expression "uVar35 = uVar35 + 1" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar28 <= uVar35) goto LAB_000552ac;" (if "if") (parenthesized_expression "(uVar28 <= uVar35)" (( "(") (binary_expression "uVar28 <= uVar35" (identifier "uVar28") (<= "<=") (identifier "uVar35")) () ")")) (goto_statement "goto LAB_000552ac;" (goto "goto") (statement_identifier "LAB_000552ac") (; ";"))) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar45") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" (identifier "iVar17") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000554fc:\n                    \n  xalloc_die(puVar29);" (statement_identifier "LAB_000554fc") (: ":") (expression_statement "xalloc_die(puVar29);" (call_expression "xalloc_die(puVar29)" (identifier "xalloc_die") (argument_list "(puVar29)" (( "(") (identifier "puVar29") () ")"))) (; ";"))) (labeled_statement "LAB_000552ac:\n  piVar21 = *(int **)(puVar7 + -0x18f8);" (statement_identifier "LAB_000552ac") (: ":") (expression_statement "piVar21 = *(int **)(puVar7 + -0x18f8);" (assignment_expression "piVar21 = *(int **)(puVar7 + -0x18f8)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(puVar7 + -0x18f8)" (* "*") (cast_expression "(int **)(puVar7 + -0x18f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + -0x18f8)" (( "(") (binary_expression "puVar7 + -0x18f8" (identifier "puVar7") (+ "+") (number_literal "-0x18f8")) () ")"))))) (; ";"))) (expression_statement "piVar34 = piVar21 + iVar24;" (assignment_expression "piVar34 = piVar21 + iVar24" (identifier "piVar34") (= "=") (binary_expression "piVar21 + iVar24" (identifier "piVar21") (+ "+") (identifier "iVar24"))) (; ";")) (if_statement "if (iVar24 == 0) goto LAB_000552e4;" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000552e4;" (goto "goto") (statement_identifier "LAB_000552e4") (; ";"))) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "piVar20 = piVar21;" (assignment_expression "piVar20 = piVar21" (identifier "piVar20") (= "=") (identifier "piVar21")) (; ";")) (do_statement "do {\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  } while (piVar34 != piVar20);" (do "do") (compound_statement "{\n    iVar17 = *piVar20;\n    piVar20 = piVar20 + 1;\n    if (iVar17 == iVar38) {\n      bVar1 = false;\n    }\n  }" ({ "{") (expression_statement "iVar17 = *piVar20;" (assignment_expression "iVar17 = *piVar20" (identifier "iVar17") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar17 == iVar38) {\n      bVar1 = false;\n    }" (if "if") (parenthesized_expression "(iVar17 == iVar38)" (( "(") (binary_expression "iVar17 == iVar38" (identifier "iVar17") (== "==") (identifier "iVar38")) () ")")) (compound_statement "{\n      bVar1 = false;\n    }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(piVar34 != piVar20)" (( "(") (binary_expression "piVar34 != piVar20" (identifier "piVar34") (!= "!=") (identifier "piVar20")) () ")")) (; ";")) (expression_statement "uVar45 = *(uint *)(puVar7 + -0x2e50);" (assignment_expression "uVar45 = *(uint *)(puVar7 + -0x2e50)" (identifier "uVar45") (= "=") (pointer_expression "*(uint *)(puVar7 + -0x2e50)" (* "*") (cast_expression "(uint *)(puVar7 + -0x2e50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x2e50)" (( "(") (binary_expression "puVar7 + -0x2e50" (identifier "puVar7") (+ "+") (number_literal "-0x2e50")) () ")"))))) (; ";")) (if_statement "if (bVar1) goto LAB_000552e4;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_000552e4;" (goto "goto") (statement_identifier "LAB_000552e4") (; ";"))) (labeled_statement "LAB_00055138:\n  iVar38 = iVar38 + 1;" (statement_identifier "LAB_00055138") (: ":") (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if ((int)uVar45 <= iVar38) goto LAB_00055518;" (if "if") (parenthesized_expression "((int)uVar45 <= iVar38)" (( "(") (binary_expression "(int)uVar45 <= iVar38" (cast_expression "(int)uVar45" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar45")) (<= "<=") (identifier "iVar38")) () ")")) (goto_statement "goto LAB_00055518;" (goto "goto") (statement_identifier "LAB_00055518") (; ";"))) (expression_statement "iVar17 = *local_6c;" (assignment_expression "iVar17 = *local_6c" (identifier "iVar17") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (goto_statement "goto LAB_00055104;" (goto "goto") (statement_identifier "LAB_00055104") (; ";")) (labeled_statement "LAB_000552e4:\n  cVar39 = *puVar15;" (statement_identifier "LAB_000552e4") (: ":") (expression_statement "cVar39 = *puVar15;" (assignment_expression "cVar39 = *puVar15" (identifier "cVar39") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";"))) (expression_statement "iVar17 = *(int *)puVar14;" (assignment_expression "iVar17 = *(int *)puVar14" (identifier "iVar17") (= "=") (pointer_expression "*(int *)puVar14" (* "*") (cast_expression "(int *)puVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar14")))) (; ";")) (expression_statement "iVar47 = *(int *)puVar12;" (assignment_expression "iVar47 = *(int *)puVar12" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) (; ";")) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" (identifier "uVar45") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  } while (uVar45 < uVar28);" (do "do") (compound_statement "{\n    iVar31 = iVar38 + *local_6c;\n    iVar40 = iVar31 * 4;\n    *(undefined4 *)(iVar33 + iVar40) = *local_64;\n    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }\n    iVar36 = *local_6c;\n    uVar45 = uVar45 + 1;\n    local_6c = local_6c + 1;\n    *(int *)(iVar47 + iVar40) = iVar36;\n    local_64 = local_64 + 1;\n  }" ({ "{") (expression_statement "iVar31 = iVar38 + *local_6c;" (assignment_expression "iVar31 = iVar38 + *local_6c" (identifier "iVar31") (= "=") (binary_expression "iVar38 + *local_6c" (identifier "iVar38") (+ "+") (pointer_expression "*local_6c" (* "*") (identifier "local_6c")))) (; ";")) (expression_statement "iVar40 = iVar31 * 4;" (assignment_expression "iVar40 = iVar31 * 4" (identifier "iVar40") (= "=") (binary_expression "iVar31 * 4" (identifier "iVar31") (* "*") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)(iVar33 + iVar40) = *local_64;" (assignment_expression "*(undefined4 *)(iVar33 + iVar40) = *local_64" (pointer_expression "*(undefined4 *)(iVar33 + iVar40)" (* "*") (cast_expression "(undefined4 *)(iVar33 + iVar40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + iVar40)" (( "(") (binary_expression "iVar33 + iVar40" (identifier "iVar33") (+ "+") (identifier "iVar40")) () ")")))) (= "=") (pointer_expression "*local_64" (* "*") (identifier "local_64"))) (; ";")) (if_statement "if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" (if "if") (parenthesized_expression "((cVar39 != '\0') && (piVar26 != (int *)0x0))" (( "(") (binary_expression "(cVar39 != '\0') && (piVar26 != (int *)0x0)" (parenthesized_expression "(cVar39 != '\0')" (( "(") (binary_expression "cVar39 != '\0'" (identifier "cVar39") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(piVar26 != (int *)0x0)" (( "(") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      *(int *)(iVar17 + iVar40) = piVar26[uVar45];\n    }" ({ "{") (expression_statement "*(int *)(iVar17 + iVar40) = piVar26[uVar45];" (assignment_expression "*(int *)(iVar17 + iVar40) = piVar26[uVar45]" (pointer_expression "*(int *)(iVar17 + iVar40)" (* "*") (cast_expression "(int *)(iVar17 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + iVar40)" (( "(") (binary_expression "iVar17 + iVar40" (identifier "iVar17") (+ "+") (identifier "iVar40")) () ")")))) (= "=") (subscript_expression "piVar26[uVar45]" (identifier "piVar26") ([ "[") (identifier "uVar45") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar36 = *local_6c;" (assignment_expression "iVar36 = *local_6c" (identifier "iVar36") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" (identifier "uVar45") (= "=") (binary_expression "uVar45 + 1" (identifier "uVar45") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_6c = local_6c + 1;" (assignment_expression "local_6c = local_6c + 1" (identifier "local_6c") (= "=") (binary_expression "local_6c + 1" (identifier "local_6c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(iVar47 + iVar40) = iVar36;" (assignment_expression "*(int *)(iVar47 + iVar40) = iVar36" (pointer_expression "*(int *)(iVar47 + iVar40)" (* "*") (cast_expression "(int *)(iVar47 + iVar40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + iVar40)" (( "(") (binary_expression "iVar47 + iVar40" (identifier "iVar47") (+ "+") (identifier "iVar40")) () ")")))) (= "=") (identifier "iVar36")) (; ";")) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar45 < uVar28)" (( "(") (binary_expression "uVar45 < uVar28" (identifier "uVar45") (< "<") (identifier "uVar28")) () ")")) (; ";")) (expression_statement "iVar17 = *(int *)(puVar5 + -0x1904);" (assignment_expression "iVar17 = *(int *)(puVar5 + -0x1904)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar5 + -0x1904)" (* "*") (cast_expression "(int *)(puVar5 + -0x1904)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x1904)" (( "(") (binary_expression "puVar5 + -0x1904" (identifier "puVar5") (+ "+") (number_literal "-0x1904")) () ")"))))) (; ";")) (expression_statement "piVar20 = (int *)(iVar33 + iVar17 * 4);" (assignment_expression "piVar20 = (int *)(iVar33 + iVar17 * 4)" (identifier "piVar20") (= "=") (cast_expression "(int *)(iVar33 + iVar17 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar33 + iVar17 * 4)" (( "(") (binary_expression "iVar33 + iVar17 * 4" (identifier "iVar33") (+ "+") (binary_expression "iVar17 * 4" (identifier "iVar17") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if (*piVar20 != 0) {\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" (if "if") (parenthesized_expression "(*piVar20 != 0)" (( "(") (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);\n    *(int *)(puVar5 + -0x1904) = iVar17;\n  }" ({ "{") (do_statement "do {\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    } while (*piVar26 != 0);" (do "do") (compound_statement "{\n      iVar17 = iVar17 + 1;\n      piVar26 = piVar20 + 1;\n      piVar20 = piVar20 + 1;\n    }" ({ "{") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar26 = piVar20 + 1;" (assignment_expression "piVar26 = piVar20 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar20 = piVar20 + 1;" (assignment_expression "piVar20 = piVar20 + 1" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 1" (identifier "piVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*piVar26 != 0)" (( "(") (binary_expression "*piVar26 != 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(int *)(puVar5 + -0x1904) = iVar17;" (assignment_expression "*(int *)(puVar5 + -0x1904) = iVar17" (pointer_expression "*(int *)(puVar5 + -0x1904)" (* "*") (cast_expression "(int *)(puVar5 + -0x1904)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x1904)" (( "(") (binary_expression "puVar5 + -0x1904" (identifier "puVar5") (+ "+") (number_literal "-0x1904")) () ")")))) (= "=") (identifier "iVar17")) (; ";")) (} "}"))) (expression_statement "iVar17 = *(int *)(puVar2 + -0x18e4);" (assignment_expression "iVar17 = *(int *)(puVar2 + -0x18e4)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(puVar2 + -0x18e4)" (* "*") (cast_expression "(int *)(puVar2 + -0x18e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + -0x18e4)" (( "(") (binary_expression "puVar2 + -0x18e4" (identifier "puVar2") (+ "+") (number_literal "-0x18e4")) () ")"))))) (; ";")) (expression_statement "local_6c = *(int **)(puVar6 + -0x18f0);" (assignment_expression "local_6c = *(int **)(puVar6 + -0x18f0)" (identifier "local_6c") (= "=") (pointer_expression "*(int **)(puVar6 + -0x18f0)" (* "*") (cast_expression "(int **)(puVar6 + -0x18f0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + -0x18f0)" (( "(") (binary_expression "puVar6 + -0x18f0" (identifier "puVar6") (+ "+") (number_literal "-0x18f0")) () ")"))))) (; ";")) (expression_statement "piVar20 = (int *)((int)local_6c + iVar24 * 4);" (assignment_expression "piVar20 = (int *)((int)local_6c + iVar24 * 4)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)local_6c + iVar24 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + iVar24 * 4)" (( "(") (binary_expression "(int)local_6c + iVar24 * 4" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (binary_expression "iVar24 * 4" (identifier "iVar24") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar47 = *(int *)puVar10;" (assignment_expression "iVar47 = *(int *)puVar10" (identifier "iVar47") (= "=") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "puVar46 = *(undefined4 **)(puVar2 + -0x18d8);" (assignment_expression "puVar46 = *(undefined4 **)(puVar2 + -0x18d8)" (identifier "puVar46") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18d8)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18d8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18d8)" (( "(") (binary_expression "puVar2 + -0x18d8" (identifier "puVar2") (+ "+") (number_literal "-0x18d8")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(puVar2 + -0x18dc);" (assignment_expression "puVar22 = *(undefined4 **)(puVar2 + -0x18dc)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18dc)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18dc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18dc)" (( "(") (binary_expression "puVar2 + -0x18dc" (identifier "puVar2") (+ "+") (number_literal "-0x18dc")) () ")"))))) (; ";")) (expression_statement "puVar30 = *(undefined4 **)(puVar2 + -0x18e0);" (assignment_expression "puVar30 = *(undefined4 **)(puVar2 + -0x18e0)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined4 **)(puVar2 + -0x18e0)" (* "*") (cast_expression "(undefined4 **)(puVar2 + -0x18e0)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + -0x18e0)" (( "(") (binary_expression "puVar2 + -0x18e0" (identifier "puVar2") (+ "+") (number_literal "-0x18e0")) () ")"))))) (; ";")) (if_statement "if (*(int *)puVar11 < iVar31) {\n    *(int *)puVar11 = iVar31;\n  }" (if "if") (parenthesized_expression "(*(int *)puVar11 < iVar31)" (( "(") (binary_expression "*(int *)puVar11 < iVar31" (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n    *(int *)puVar11 = iVar31;\n  }" ({ "{") (expression_statement "*(int *)puVar11 = iVar31;" (assignment_expression "*(int *)puVar11 = iVar31" (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (= "=") (identifier "iVar31")) (; ";")) (} "}"))) (labeled_statement "LAB_00054f00:\n  iVar24 = iVar24 + 1;" (statement_identifier "LAB_00054f00") (: ":") (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*piVar34 = iVar38;" (assignment_expression "*piVar34 = iVar38" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (= "=") (identifier "iVar38")) (; ";")) (expression_statement "iVar40 = *(int *)(puVar6 + -0x18f4);" (assignment_expression "iVar40 = *(int *)(puVar6 + -0x18f4)" (identifier "iVar40") (= "=") (pointer_expression "*(int *)(puVar6 + -0x18f4)" (* "*") (cast_expression "(int *)(puVar6 + -0x18f4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + -0x18f4)" (( "(") (binary_expression "puVar6 + -0x18f4" (identifier "puVar6") (+ "+") (number_literal "-0x18f4")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar47 + *piVar20 * 4) = iVar38;" (assignment_expression "*(int *)(iVar47 + *piVar20 * 4) = iVar38" (pointer_expression "*(int *)(iVar47 + *piVar20 * 4)" (* "*") (cast_expression "(int *)(iVar47 + *piVar20 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar47 + *piVar20 * 4)" (( "(") (binary_expression "iVar47 + *piVar20 * 4" (identifier "iVar47") (+ "+") (binary_expression "*piVar20 * 4" (pointer_expression "*piVar20" (* "*") (identifier "piVar20")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "iVar38")) (; ";")) (if_statement "if (iVar40 <= iVar24) goto LAB_00054f28;" (if "if") (parenthesized_expression "(iVar40 <= iVar24)" (( "(") (binary_expression "iVar40 <= iVar24" (identifier "iVar40") (<= "<=") (identifier "iVar24")) () ")")) (goto_statement "goto LAB_00054f28;" (goto "goto") (statement_identifier "LAB_00054f28") (; ";"))) (goto_statement "goto LAB_00054d58;" (goto "goto") (statement_identifier "LAB_00054d58") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *var_4;
  type_1 *puVar2;
  int var_1;
  void *pvVar4;
  int var_2;
  size_t sVar6;
  type_2 var_5;
  
  puVar2 = PTR_nvectors_0008da54;
  var_4 = PTR_saved_sigactions_28__sa_resv_0__0008d618;
  var_2 = *(int *)PTR_nvars_0008d808;
  var_1 = *(int *)PTR_nstates_0008d698;
  *(int *)PTR_nvectors_0008da54 = var_1 + var_2;
  pvVar4 = var_3(var_1 + var_2,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(var_4 + -0x18d8) = pvVar4;
  pvVar4 = var_3(sVar6,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(var_4 + -0x18dc) = pvVar4;
  pvVar4 = var_3(sVar6,4);
  sVar6 = *(size_t *)puVar2;
  *(void **)(var_4 + -0x18e0) = pvVar4;
  pvVar4 = var_3(sVar6,4);
  var_5 = *(type_2 *)puVar2;
  sVar6 = var_5 << 2;
  *(void **)(var_4 + -0x18e4) = pvVar4;
  if ((-1 < (int)sVar6) && (var_5 >> 0x1e == 0)) {
                    /* WARNING: Subroutine does not return */
    var_6(sVar6);
  }
                    /* WARNING: Subroutine does not return */
  var_7();
}


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

void MASKED(void)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  undefined *puVar9;
  undefined *puVar10;
  undefined *puVar11;
  undefined *puVar12;
  undefined *puVar13;
  undefined *puVar14;
  undefined *puVar15;
  undefined *puVar16;
  int iVar17;
  undefined4 uVar18;
  code *pcVar19;
  int *piVar20;
  int *piVar21;
  undefined4 *puVar22;
  undefined *puVar23;
  int iVar24;
  uint *puVar25;
  int *piVar26;
  undefined4 uVar27;
  uint uVar28;
  uint *puVar29;
  undefined4 *puVar30;
  int iVar31;
  int *piVar32;
  int iVar33;
  int *piVar34;
  uint uVar35;
  int iVar36;
  uint uVar37;
  int iVar38;
  char cVar39;
  int iVar40;
  int iVar41;
  undefined4 *puVar42;
  undefined4 *puVar43;
  undefined4 *puVar44;
  uint uVar45;
  undefined4 *puVar46;
  int iVar47;
  int iVar48;
  int *local_6c;
  undefined4 *local_64;
  
  puVar13 = PTR_nvectors_0008da54;
  puVar6 = PTR_nvars_0008d808;
  puVar9 = PTR_nstates_0008d698;
  puVar2 = PTR_DAT_0008d618;
  iVar24 = *(int *)PTR_nvars_0008d808;
  iVar17 = *(int *)PTR_nstates_0008d698;
  *(int *)PTR_nvectors_0008da54 = iVar17 + iVar24;
  uVar18 = xcalloc(iVar17 + iVar24,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18d8) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18dc) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar27 = *(undefined4 *)puVar13;
  *(undefined4 *)(puVar2 + -0x18e0) = uVar18;
  uVar18 = xcalloc(uVar27,4);
  uVar28 = *(uint *)puVar13;
  puVar29 = (uint *)(uVar28 << 2);
  *(undefined4 *)(puVar2 + -0x18e4) = uVar18;
  puVar15 = PTR_nondeterministic_parser_0008da74;
  puVar3 = PTR_DAT_0008d618;
  if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
    uVar18 = xmalloc();
    cVar39 = *puVar15;
    *(undefined4 *)(puVar3 + -0x18e8) = uVar18;
    iVar17 = 0;
    if (cVar39 != '\0') {
      iVar17 = (*(code *)PTR_conflicts_total_count_0008dce4)();
    }
    puVar7 = PTR_yydefact_0008d968;
    puVar10 = PTR_ntokens_0008d77c;
    puVar29 = (uint *)(*(uint *)puVar9 << 2);
    if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {
      uVar18 = xmalloc();
      uVar28 = *(uint *)puVar10;
      *(undefined4 *)puVar7 = uVar18;
      puVar4 = PTR_DAT_0008d618;
      puVar29 = (uint *)(uVar28 << 2);
      if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
        uVar18 = xmalloc();
        uVar28 = *(uint *)puVar10;
        *(undefined4 *)(puVar4 + -0x18ec) = uVar18;
        puVar5 = PTR_DAT_0008d618;
        puVar29 = (uint *)(uVar28 << 2);
        if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
          uVar18 = xmalloc();
          uVar28 = iVar17 * 2 + 1;
          *(undefined4 *)(puVar5 + -0x18fc) = uVar18;
          puVar29 = (uint *)(uVar28 * 4);
          if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
            uVar18 = xmalloc();
            cVar39 = *puVar15;
            *(undefined4 *)PTR_conflict_list_0008da68 = uVar18;
            *(int *)(PTR_DAT_0008d618 + -0x1900) = iVar17 * 2;
            *(undefined4 *)PTR_conflict_list_cnt_0008da6c = 1;
            if ((cVar39 == '\0') && (0 < *(int *)PTR_nrules_0008d7c8)) {
              iVar17 = *(int *)PTR_rules_0008d784;
              iVar24 = *(int *)PTR_nrules_0008d7c8 * 0x60 + iVar17;
              do {
                *(undefined1 *)(iVar17 + 0x38) = 0;
                iVar17 = iVar17 + 0x60;
              } while (iVar24 != iVar17);
            }
            puVar12 = PTR_states_0008d7f8;
            puVar11 = PTR_rules_0008d784;
            if (0 < *(int *)puVar9) {
              iVar17 = 0;
              pcVar19 = (code *)(PTR_LAB_0008dc84 + 0x3af0);
              do {
                iVar47 = iVar17 * 4;
                iVar24 = (*pcVar19)(*(undefined4 *)(*(int *)puVar12 + iVar47));
                if (iVar24 == 0) {
                  iVar24 = 0;
                  *(undefined4 *)(*(int *)puVar7 + iVar47) = 0;
                  iVar38 = *(int *)puVar10;
                  puVar25 = *(uint **)(puVar4 + -0x18ec);
                  if (iVar38 < 1) goto LAB_0005508c;
LAB_00054494:
                  uVar28 = 0;
                  puVar29 = puVar25;
                  do {
                    if (*puVar29 != 0) {
                      uVar28 = uVar28 + 1;
                    }
                    puVar29 = puVar29 + 1;
                  } while (puVar25 + iVar38 != puVar29);
                  if (uVar28 == 0) {
                    if (*puVar15 == '\0') goto LAB_00054984;
                  }
                  else {
                    iVar24 = uVar28 << 2;
                    iVar38 = *(int *)(puVar2 + -0x18d8);
                    if ((iVar24 < 0) || (uVar28 >> 0x1e != 0)) goto LAB_000554fc;
                    piVar20 = (int *)xmalloc(iVar24);
                    *(int **)(iVar38 + iVar47) = piVar20;
                    iVar38 = *(int *)(puVar2 + -0x18dc);
                    piVar21 = (int *)xmalloc(iVar24);
                    cVar39 = *puVar15;
                    *(int **)(iVar38 + iVar47) = piVar21;
                    if (cVar39 == '\0') {
                      puVar22 = (undefined4 *)0x0;
                      cVar39 = '\0';
                    }
                    else {
                      puVar22 = (undefined4 *)xmalloc(iVar24);
                      cVar39 = *puVar15;
                    }
                    iVar24 = *(int *)puVar10;
                    *(undefined4 **)(*(int *)(puVar2 + -0x18e0) + iVar47) = puVar22;
                    if (0 < iVar24) {
                      piVar26 = *(int **)(puVar4 + -0x18ec);
                      puVar30 = *(undefined4 **)(puVar5 + -0x18fc);
                      iVar38 = 0;
LAB_000545c4:
                      do {
                        puVar46 = puVar22;
                        if (*piVar26 != 0) {
                          *piVar20 = iVar38;
                          piVar20 = piVar20 + 1;
                          *piVar21 = *piVar26;
                          if (cVar39 == '\0') {
                            iVar38 = iVar38 + 1;
                            piVar26 = piVar26 + 1;
                            puVar30 = puVar30 + 1;
                            piVar21 = piVar21 + 1;
                            if (iVar38 == iVar24) break;
                            goto LAB_000545c4;
                          }
                          puVar46 = puVar22 + 1;
                          *puVar22 = *puVar30;
                          piVar21 = piVar21 + 1;
                        }
                        iVar38 = iVar38 + 1;
                        piVar26 = piVar26 + 1;
                        puVar30 = puVar30 + 1;
                        puVar22 = puVar46;
                      } while (iVar38 != iVar24);
                    }
                    iVar24 = *(int *)(puVar3 + -0x18e8);
                    piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar47);
                    *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar47) = uVar28;
                    *(int *)(iVar24 + iVar47) = (piVar20[-1] - *piVar21) + 1;
                    if (cVar39 == '\0') {
                      iVar38 = *(int *)puVar10;
                      iVar24 = *(int *)(*(int *)puVar7 + iVar47);
                      if (iVar38 < 1) goto LAB_000549cc;
                      puVar25 = *(uint **)(puVar4 + -0x18ec);
LAB_00054984:
                      iVar47 = 0;
                      iVar40 = *(int *)puVar11;
                      do {
                        if (*puVar25 + 0x7fffffff < 0x7fffffff) {
                          *(undefined1 *)(iVar40 + ~*puVar25 * 0x60 + 0x38) = 1;
                        }
                        iVar47 = iVar47 + 1;
                        puVar25 = puVar25 + 1;
                      } while (iVar47 < iVar38);
                      goto LAB_000549cc;
                    }
                  }
                }
                else {
                  iVar24 = *(int *)(iVar24 + 4) + 1;
                  *(int *)(*(int *)puVar7 + iVar47) = iVar24;
                  iVar38 = *(int *)puVar10;
                  if (0 < iVar38) {
                    puVar25 = *(uint **)(puVar4 + -0x18ec);
                    goto LAB_00054494;
                  }
LAB_0005508c:
                  if (*puVar15 != '\0') goto LAB_00054640;
LAB_000549cc:
                  if (iVar24 != 0) {
                    *(undefined1 *)(*(int *)puVar11 + iVar24 * 0x60 + -0x28) = 1;
                  }
                }
LAB_00054640:
                iVar17 = iVar17 + 1;
              } while (iVar17 < *(int *)puVar9);
            }
            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar4 + -0x18ec));
            (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar5 + -0x18fc));
            puVar29 = (uint *)(*(uint *)puVar9 << 2);
            if ((-1 < (int)puVar29) && (*(uint *)puVar9 >> 0x1e == 0)) {
              puVar25 = (uint *)xmalloc();
              puVar4 = PTR_yydefgoto_0008da4c;
              puVar7 = PTR_nsyms_0008d7bc;
              puVar29 = (uint *)(*(uint *)puVar6 << 2);
              if ((-1 < (int)puVar29) && (*(uint *)puVar6 >> 0x1e == 0)) {
                uVar18 = xmalloc();
                iVar24 = *(int *)puVar10;
                iVar17 = *(int *)puVar7;
                *(undefined4 *)puVar4 = uVar18;
                puVar11 = PTR_to_state_0008d978;
                puVar5 = PTR_from_state_0008d974;
                puVar6 = PTR_goto_map_0008d970;
                if (iVar24 < iVar17) {
                  iVar47 = *(int *)PTR_goto_map_0008d970;
                  iVar17 = iVar24;
                  do {
                    iVar38 = (iVar17 - iVar24) * 4;
                    uVar28 = *(uint *)(iVar47 + iVar38);
                    uVar45 = ((uint *)(iVar47 + iVar38))[1];
                    if (uVar28 == uVar45) {
LAB_00055468:
                      iVar33 = -1;
LAB_0005494c:
                      *(int *)(*(int *)puVar4 + iVar38) = iVar33;
                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;
                    }
                    else {
                      iVar40 = *(int *)puVar9;
                      if (iVar40 < 1) {
                        if (uVar45 <= uVar28) goto LAB_00055468;
LAB_00054758:
                        iVar31 = *(int *)puVar11;
                        iVar36 = uVar28 * 4;
                        piVar21 = (int *)(iVar31 + iVar36);
                        do {
                          iVar33 = *piVar21;
                          piVar21 = piVar21 + 1;
                          puVar25[iVar33] = puVar25[iVar33] + 1;
                        } while ((int *)(iVar31 + uVar45 * 4) != piVar21);
                        iVar33 = -1;
                        if (0 < iVar40) goto LAB_00054798;
                      }
                      else {
                        puVar29 = puVar25;
                        do {
                          *puVar29 = 0;
                          puVar29 = puVar29 + 1;
                        } while (puVar25 + iVar40 != puVar29);
                        if (uVar28 < uVar45) goto LAB_00054758;
LAB_00054798:
                        iVar31 = 0;
                        iVar33 = -1;
                        uVar35 = 0;
                        puVar29 = puVar25;
                        do {
                          uVar37 = *puVar29;
                          puVar29 = puVar29 + 1;
                          if (uVar35 < uVar37) {
                            iVar33 = iVar31;
                          }
                          iVar31 = iVar31 + 1;
                          if (uVar35 < uVar37) {
                            uVar35 = uVar37;
                          }
                        } while (iVar31 < iVar40);
                        if (uVar45 <= uVar28) goto LAB_0005494c;
                        iVar31 = *(int *)puVar11;
                        iVar36 = uVar28 << 2;
                      }
                      piVar21 = (int *)(iVar31 + iVar36);
                      uVar37 = 0;
                      uVar35 = uVar28;
                      do {
                        if (*piVar21 != iVar33) {
                          uVar37 = uVar37 + 1;
                        }
                        uVar35 = uVar35 + 1;
                        piVar21 = piVar21 + 1;
                      } while (uVar35 < uVar45);
                      if (uVar37 != 0) {
                        iVar47 = uVar37 << 2;
                        iVar38 = *(int *)(puVar2 + -0x18d8);
                        iVar24 = ((iVar17 + *(int *)puVar9) - iVar24) * 4;
                        puVar29 = (uint *)puVar2;
                        if ((-1 < iVar47) && (uVar37 >> 0x1e == 0)) {
                          puVar22 = (undefined4 *)xmalloc(iVar47);
                          iVar40 = *(int *)(puVar2 + -0x18dc);
                          *(undefined4 **)(iVar38 + iVar24) = puVar22;
                          piVar21 = (int *)xmalloc(iVar47);
                          *(int **)(iVar40 + iVar24) = piVar21;
                          piVar20 = (int *)(*(int *)puVar11 + iVar36);
                          puVar30 = (undefined4 *)(*(int *)puVar5 + iVar36);
                          do {
                            piVar26 = piVar21;
                            puVar46 = puVar22;
                            if (*piVar20 != iVar33) {
                              puVar46 = puVar22 + 1;
                              piVar26 = piVar21 + 1;
                              *puVar22 = *puVar30;
                              *piVar21 = *piVar20;
                            }
                            uVar28 = uVar28 + 1;
                            piVar20 = piVar20 + 1;
                            puVar30 = puVar30 + 1;
                            piVar21 = piVar26;
                            puVar22 = puVar46;
                          } while (uVar28 < uVar45);
                          iVar47 = *(int *)puVar6;
                          piVar21 = *(int **)(*(int *)(puVar2 + -0x18d8) + iVar24);
                          iVar38 = *(int *)(puVar3 + -0x18e8);
                          *(uint *)(*(int *)(puVar2 + -0x18e4) + iVar24) = uVar37;
                          *(int *)(iVar38 + iVar24) = (puVar46[-1] - *piVar21) + 1;
                          iVar38 = (iVar17 - *(int *)puVar10) * 4;
                          goto LAB_0005494c;
                        }
                        goto LAB_000554fc;
                      }
                      iVar47 = *(int *)puVar6;
                      *(int *)(*(int *)puVar4 + (iVar17 - *(int *)puVar10) * 4) = iVar33;
                      if (*(int *)puVar7 <= iVar17 + 1) goto LAB_00054a2c;
                    }
                    iVar17 = iVar17 + 1;
                    iVar24 = *(int *)puVar10;
                  } while( true );
                }
                iVar47 = *(int *)PTR_goto_map_0008d970;
LAB_00054a2c:
                puVar6 = PTR_DAT_0008d618;
                (*(code *)PTR_free_0008df9c)(puVar25);
                (*(code *)PTR_free_0008df9c)(iVar47);
                (*(code *)PTR_free_0008df9c)(*(undefined4 *)PTR_from_state_0008d974);
                (*(code *)PTR_free_0008df9c)(*(undefined4 *)puVar11);
                iVar17 = xcalloc(*(undefined4 *)puVar13,4);
                uVar28 = *(uint *)puVar13;
                *(int *)(puVar6 + -0x18f0) = iVar17;
                *(undefined4 *)(puVar6 + -0x18f4) = 0;
                if (0 < (int)uVar28) {
                  uVar45 = 0;
                  puVar25 = *(uint **)(puVar2 + -0x18e4);
                  iVar47 = *(int *)(puVar3 + -0x18e8);
                  bVar1 = false;
                  iVar24 = 0;
                  puVar29 = puVar25;
                  do {
                    while( true ) {
                      uVar35 = *puVar29;
                      iVar38 = iVar24 + -1;
                      if (uVar35 == 0) break;
                      iVar40 = *(int *)(iVar47 + uVar45 * 4);
                      if (iVar38 != -1) {
                        iVar48 = iVar38 * 4;
                        iVar36 = *(int *)(iVar17 + iVar48);
                        iVar31 = *(int *)(iVar47 + iVar36 * 4);
                        iVar33 = iVar38;
                        if (iVar31 < iVar40) {
                          iVar31 = iVar17 + iVar48 + 4;
                          do {
                            iVar33 = iVar33 + -1;
                            if (iVar33 == -1) {
                              iVar31 = -1;
                              goto LAB_00054b68;
                            }
                            piVar21 = (int *)(iVar31 + -8);
                            iVar41 = *(int *)(iVar47 + *piVar21 * 4);
                            iVar31 = iVar31 + -4;
                          } while (iVar41 < iVar40);
                          if ((iVar40 == iVar41) && (puVar25[*piVar21] < uVar35)) goto LAB_00055404;
                        }
                        else {
                          if ((iVar40 != iVar31) || (uVar35 <= puVar25[iVar36])) goto LAB_00054b90;
LAB_00055404:
                          iVar41 = iVar17 + iVar33 * 4;
                          do {
                            iVar33 = iVar33 + -1;
                            iVar31 = iVar33;
                            if (iVar33 == -1) goto LAB_00054b68;
                            piVar21 = (int *)(iVar41 + -4);
                          } while ((iVar40 == *(int *)(iVar47 + *piVar21 * 4)) &&
                                  (iVar41 = iVar41 + -4, puVar25[*piVar21] < uVar35));
                        }
                        bVar1 = iVar33 < iVar38;
                        iVar31 = iVar33;
                        iVar38 = iVar33;
                        if (bVar1) {
LAB_00054b68:
                          piVar21 = (int *)(iVar17 + iVar48 + 4);
                          while( true ) {
                            *piVar21 = iVar36;
                            iVar38 = iVar31;
                            if ((int *)(iVar17 + 4 + iVar33 * 4) == piVar21 + -1) break;
                            iVar36 = piVar21[-2];
                            piVar21 = piVar21 + -1;
                          }
                        }
                      }
LAB_00054b90:
                      iVar24 = iVar24 + 1;
                      bVar1 = true;
                      *(uint *)(iVar17 + (iVar38 + 1) * 4) = uVar45;
                      uVar45 = uVar45 + 1;
                      puVar29 = puVar29 + 1;
                      if (uVar45 == uVar28) goto LAB_00054bb0;
                    }
                    uVar45 = uVar45 + 1;
                    puVar29 = puVar29 + 1;
                  } while (uVar45 != uVar28);
LAB_00054bb0:
                  if (bVar1) {
                    *(int *)(puVar6 + -0x18f4) = iVar24;
                  }
                }
                puVar10 = PTR_base_0008da48;
                puVar29 = (uint *)(uVar28 << 2);
                if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
                  uVar18 = xmalloc();
                  *(undefined4 *)puVar10 = uVar18;
                  puVar4 = PTR_table_0008da58;
                  puVar7 = PTR_DAT_0008d618;
                  puVar29 = (uint *)(*(uint *)(puVar6 + -0x18f4) << 2);
                  if ((-1 < (int)puVar29) && (*(uint *)(puVar6 + -0x18f4) >> 0x1e == 0)) {
                    uVar18 = xmalloc();
                    *(undefined4 *)(puVar7 + -0x18f8) = uVar18;
                    puVar14 = PTR_conflict_table_0008da64;
                    uVar18 = xcalloc(*(undefined4 *)(puVar7 + -0x2e50),4);
                    uVar27 = *(undefined4 *)(puVar7 + -0x2e50);
                    *(undefined4 *)puVar4 = uVar18;
                    uVar18 = xcalloc(uVar27,4);
                    uVar28 = *(uint *)(puVar7 + -0x2e50);
                    *(undefined4 *)puVar14 = uVar18;
                    puVar12 = PTR_check_0008da60;
                    puVar11 = PTR_high_0008da44;
                    puVar5 = PTR_DAT_0008d618;
                    puVar29 = (uint *)(uVar28 << 2);
                    if ((-1 < (int)puVar29) && (uVar28 >> 0x1e == 0)) {
                      puVar22 = (undefined4 *)xmalloc();
                      *(undefined4 *)(puVar5 + -0x1904) = 0;
                      *(undefined4 **)puVar12 = puVar22;
                      *(undefined4 *)puVar11 = 0;
                      if (0 < *(int *)puVar13) {
                        iVar17 = 0;
                        puVar30 = *(undefined4 **)puVar10;
                        do {
                          iVar17 = iVar17 + 1;
                          *puVar30 = 0x80000000;
                          puVar30 = puVar30 + 1;
                        } while (iVar17 < *(int *)puVar13);
                      }
                      if (0 < *(int *)(puVar7 + -0x2e50)) {
                        puVar30 = puVar22 + *(int *)(puVar7 + -0x2e50);
                        do {
                          *puVar22 = 0xffffffff;
                          puVar22 = puVar22 + 1;
                        } while (puVar30 != puVar22);
                      }
                      puVar8 = PTR_trace_flag_0008d64c;
                      iVar24 = 0;
                      local_6c = *(int **)(puVar6 + -0x18f0);
                      iVar17 = *(int *)(puVar2 + -0x18e4);
                      puVar46 = *(undefined4 **)(puVar2 + -0x18d8);
                      puVar22 = *(undefined4 **)(puVar2 + -0x18dc);
                      puVar30 = *(undefined4 **)(puVar2 + -0x18e0);
                      if (*(int *)(puVar6 + -0x18f4) < 1) {
                        iVar47 = *(int *)puVar10;
                        piVar21 = *(int **)(puVar7 + -0x18f8);
LAB_00054f28:
                        uVar18 = FUN_000541a0(iVar47,*(undefined4 *)puVar13);
                        uVar27 = *(undefined4 *)puVar4;
                        iVar24 = *(int *)puVar11;
                        *(undefined4 *)PTR_base_ninf_0008da50 = uVar18;
                        uVar18 = FUN_000541a0(uVar27,iVar24 + 1);
                        puVar2 = PTR_free_0008df9c;
                        *(undefined4 *)PTR_table_ninf_0008da5c = uVar18;
                        (*(code *)puVar2)(piVar21);
                        (*(code *)PTR_free_0008df9c)(local_6c);
                        (*(code *)PTR_free_0008df9c)(iVar17);
                        (*(code *)PTR_free_0008df9c)(*(undefined4 *)(puVar3 + -0x18e8));
                        if (0 < *(int *)puVar13) {
                          iVar17 = 0;
                          puVar42 = puVar30;
                          puVar43 = puVar22;
                          puVar44 = puVar46;
                          do {
                            uVar18 = *puVar44;
                            iVar17 = iVar17 + 1;
                            puVar44 = puVar44 + 1;
                            (*(code *)PTR_free_0008df9c)(uVar18);
                            (*(code *)PTR_free_0008df9c)(*puVar43);
                            (*(code *)PTR_free_0008df9c)(*puVar42);
                            puVar42 = puVar42 + 1;
                            puVar43 = puVar43 + 1;
                          } while (iVar17 < *(int *)puVar13);
                        }
                        (*(code *)PTR_free_0008df9c)(puVar46);
                        (*(code *)PTR_free_0008df9c)(puVar22);
                        (*(code *)PTR_free_0008df9c)(puVar30);
                        return;
                      }
                      puVar23 = PTR_DAT_0008d800 + -0x470c;
LAB_00054d58:
                      puVar16 = PTR_stderr_0008dfb4;
                      piVar20 = (int *)((int)local_6c + iVar24 * 4);
                      iVar47 = *piVar20;
                      piVar34 = puVar46 + iVar47;
                      piVar26 = (int *)puVar30[iVar47];
                      piVar21 = puVar22 + iVar47;
                      uVar28 = *(uint *)(iVar17 + iVar47 * 4);
                      if (iVar47 < *(int *)puVar9) {
                        if ((piVar26 != (int *)0x0) && (uVar28 != 0)) {
                          if (*piVar26 == 0) {
                            uVar45 = 0;
                            piVar32 = piVar26;
                            do {
                              piVar32 = piVar32 + 1;
                              uVar45 = uVar45 + 1;
                              if (uVar45 == uVar28) goto LAB_00054de4;
                            } while (*piVar32 == 0);
                          }
                          local_64 = (undefined4 *)*piVar21;
LAB_000550cc:
                          local_6c = (int *)*piVar34;
                          goto LAB_000550d4;
                        }
LAB_00054de4:
                        iVar38 = iVar24 + -1;
                        if (iVar24 != 0) {
                          iVar33 = piVar20[-1];
                          iVar31 = *(int *)(puVar3 + -0x18e8);
                          iVar40 = iVar33 * 4;
                          iVar47 = *(int *)(iVar31 + iVar47 * 4);
                          if ((*(int *)(iVar31 + iVar40) == iVar47) &&
                             (piVar32 = piVar20, *(uint *)(iVar17 + iVar40) == uVar28)) {
                            do {
                              iVar48 = 1;
                              iVar36 = 0;
                              if (uVar28 + 1 == 1) {
LAB_00054edc:
                                if (iVar33 < 0) break;
                                iVar47 = *(int *)puVar10;
                                piVar21 = *(int **)(puVar7 + -0x18f8);
                                iVar38 = *(int *)(iVar47 + iVar40);
                                piVar34 = piVar21 + iVar24;
                                goto LAB_00054f00;
                              }
                              while (((local_64 = (undefined4 *)*piVar21,
                                      *(int *)(*(int *)((int)puVar22 + iVar40) + iVar36) ==
                                      *(int *)((int)local_64 + iVar36) &&
                                      (*(int *)(*(int *)((int)puVar46 + iVar40) + iVar36) ==
                                       *(int *)(*piVar34 + iVar36))) &&
                                     ((*(int *)((int)puVar30 + iVar40) == 0 ||
                                      (*(int *)(*(int *)((int)puVar30 + iVar40) + iVar36) == 0)))))
                              {
                                iVar48 = iVar48 + 1;
                                iVar36 = iVar36 + 4;
                                if (uVar28 + 1 == iVar48) goto LAB_00054edc;
                              }
                              iVar38 = iVar38 + -1;
                              if (iVar38 == -1) goto LAB_000550cc;
                              iVar33 = piVar32[-2];
                              iVar40 = iVar33 * 4;
                              if ((iVar47 != *(int *)(iVar31 + iVar40)) ||
                                 (piVar32 = piVar32 + -1, *(uint *)(iVar17 + iVar40) != uVar28))
                              goto LAB_000550cc;
                            } while( true );
                          }
                        }
                      }
                      local_6c = (int *)*piVar34;
                      local_64 = (undefined4 *)*piVar21;
                      if (uVar28 == 0) {
                        (*(code *)PTR___assert_fail_0008de30)
                                  (PTR_DAT_0008d800 + -0x4728,PTR_DAT_0008d800 + -0x4750,0x28a,
                                   PTR_DAT_0008d800 + -0x46e0);
                        return;
                      }
LAB_000550d4:
                      uVar45 = *(uint *)(puVar7 + -0x2e50);
                      iVar17 = *local_6c;
                      iVar38 = *(int *)(puVar5 + -0x1904) - iVar17;
                      if ((int)uVar45 <= iVar38) {
LAB_00055518:
                        (*(code *)PTR___assert_fail_0008de30)
                                  (PTR_DAT_0008d800 + -0x4720,PTR_DAT_0008d800 + -0x4750,0x28f,
                                   PTR_DAT_0008d800 + -0x46e0);
                        return;
                      }
LAB_00055104:
                      uVar35 = 0;
                      piVar21 = local_6c;
                      do {
                        piVar21 = piVar21 + 1;
                        iVar17 = iVar38 + iVar17;
                        uVar37 = uVar45;
                        if (iVar17 < (int)uVar45) {
LAB_0005511c:
                          iVar33 = *(int *)puVar4;
                          iVar17 = *(int *)(iVar33 + iVar17 * 4);
                        }
                        else {
                          do {
                            uVar37 = uVar37 << 1;
                          } while ((int)uVar37 <= iVar17);
                          *(uint *)(puVar7 + -0x2e50) = uVar37;
                          if ((*(uint *)puVar8 & 4) != 0) {
                            (*(code *)PTR___fprintf_chk_0008de68)
                                      (*(undefined4 *)puVar16,1,puVar23,uVar45,uVar37);
                            uVar37 = *(uint *)(puVar7 + -0x2e50);
                          }
                          puVar29 = *(uint **)puVar4;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          uVar18 = xrealloc(puVar29);
                          uVar37 = *(uint *)(puVar7 + -0x2e50);
                          *(undefined4 *)puVar4 = uVar18;
                          puVar29 = *(uint **)puVar14;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          uVar18 = xrealloc(puVar29);
                          uVar37 = *(uint *)(puVar7 + -0x2e50);
                          *(undefined4 *)puVar14 = uVar18;
                          puVar29 = *(uint **)puVar12;
                          if (((int)(uVar37 << 2) < 0) || (uVar37 >> 0x1e != 0)) break;
                          iVar47 = xrealloc();
                          iVar40 = *(int *)(puVar7 + -0x2e50);
                          *(int *)puVar12 = iVar47;
                          if (iVar40 <= (int)uVar45) goto LAB_0005511c;
                          iVar36 = uVar45 << 2;
                          iVar33 = *(int *)puVar4;
                          iVar31 = *(int *)puVar14;
                          do {
                            puVar46 = (undefined4 *)(iVar33 + iVar36);
                            puVar30 = (undefined4 *)(iVar31 + iVar36);
                            puVar22 = (undefined4 *)(iVar47 + iVar36);
                            iVar36 = iVar36 + 4;
                            *puVar46 = 0;
                            *puVar30 = 0;
                            *puVar22 = 0xffffffff;
                          } while (iVar40 << 2 != iVar36);
                          iVar17 = *(int *)(iVar33 + iVar17 * 4);
                        }
                        if (iVar17 != 0) {
                          uVar45 = *(uint *)(puVar7 + -0x2e50);
                          goto LAB_00055138;
                        }
                        uVar35 = uVar35 + 1;
                        if (uVar28 <= uVar35) goto LAB_000552ac;
                        uVar45 = *(uint *)(puVar7 + -0x2e50);
                        iVar17 = *piVar21;
                      } while( true );
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
LAB_000554fc:
                    /* WARNING: Subroutine does not return */
  xalloc_die(puVar29);
LAB_000552ac:
  piVar21 = *(int **)(puVar7 + -0x18f8);
  piVar34 = piVar21 + iVar24;
  if (iVar24 == 0) goto LAB_000552e4;
  bVar1 = true;
  piVar20 = piVar21;
  do {
    iVar17 = *piVar20;
    piVar20 = piVar20 + 1;
    if (iVar17 == iVar38) {
      bVar1 = false;
    }
  } while (piVar34 != piVar20);
  uVar45 = *(uint *)(puVar7 + -0x2e50);
  if (bVar1) goto LAB_000552e4;
LAB_00055138:
  iVar38 = iVar38 + 1;
  if ((int)uVar45 <= iVar38) goto LAB_00055518;
  iVar17 = *local_6c;
  goto LAB_00055104;
LAB_000552e4:
  cVar39 = *puVar15;
  iVar17 = *(int *)puVar14;
  iVar47 = *(int *)puVar12;
  uVar45 = 0;
  do {
    iVar31 = iVar38 + *local_6c;
    iVar40 = iVar31 * 4;
    *(undefined4 *)(iVar33 + iVar40) = *local_64;
    if ((cVar39 != '\0') && (piVar26 != (int *)0x0)) {
      *(int *)(iVar17 + iVar40) = piVar26[uVar45];
    }
    iVar36 = *local_6c;
    uVar45 = uVar45 + 1;
    local_6c = local_6c + 1;
    *(int *)(iVar47 + iVar40) = iVar36;
    local_64 = local_64 + 1;
  } while (uVar45 < uVar28);
  iVar17 = *(int *)(puVar5 + -0x1904);
  piVar20 = (int *)(iVar33 + iVar17 * 4);
  if (*piVar20 != 0) {
    do {
      iVar17 = iVar17 + 1;
      piVar26 = piVar20 + 1;
      piVar20 = piVar20 + 1;
    } while (*piVar26 != 0);
    *(int *)(puVar5 + -0x1904) = iVar17;
  }
  iVar17 = *(int *)(puVar2 + -0x18e4);
  local_6c = *(int **)(puVar6 + -0x18f0);
  piVar20 = (int *)((int)local_6c + iVar24 * 4);
  iVar47 = *(int *)puVar10;
  puVar46 = *(undefined4 **)(puVar2 + -0x18d8);
  puVar22 = *(undefined4 **)(puVar2 + -0x18dc);
  puVar30 = *(undefined4 **)(puVar2 + -0x18e0);
  if (*(int *)puVar11 < iVar31) {
    *(int *)puVar11 = iVar31;
  }
LAB_00054f00:
  iVar24 = iVar24 + 1;
  *piVar34 = iVar38;
  iVar40 = *(int *)(puVar6 + -0x18f4);
  *(int *)(iVar47 + *piVar20 * 4) = iVar38;
  if (iVar40 <= iVar24) goto LAB_00054f28;
  goto LAB_00054d58;
}

