
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int display_debug_ranges(dwarf_section *section,void *file)

{
  uchar *puVar1;
  dwarf_vma *pdVar2;
  uchar *puVar3;
  longlong lVar4;
  dwarf_vma dVar5;
  uchar *puVar6;
  char *pcVar7;
  uint uVar8;
  bfd_boolean bVar9;
  uint uVar10;
  uint *puVar11;
  debug_info *pdVar12;
  dwarf_vma *pdVar13;
  char *pcVar14;
  char *pcVar15;
  int iVar16;
  debug_info *pdVar17;
  dwarf_section *extraout_ECX;
  dwarf_section *section_1;
  dwarf_section *extraout_ECX_00;
  size_t __nmemb;
  uint *puVar18;
  code *pcVar19;
  uint uVar20;
  uint *puVar21;
  size_t sVar22;
  uchar *puVar23;
  dwarf_section *section_00;
  uchar *puVar24;
  elf_vma eVar25;
  void *in_stack_ffffffa4;
  undefined4 local_4c;
  uchar *local_38;
  uchar *local_34;
  uint local_28;
  
  uVar10 = (uint)section->size;
  puVar3 = section->start;
  uVar20 = *(uint *)((int)&section->size + 4);
  pcVar7 = section->name;
  puVar6 = puVar3 + uVar10;
  if (uVar10 == 0) {
    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar14,pcVar7);
    return 0;
  }
  pcVar7 = strstr(pcVar7,"debug_rnglists");
  if (pcVar7 == (char *)0x0) {
    local_28 = 0;
    local_38 = puVar3;
LAB_00032b1b:
    uVar10 = load_debug_info(in_stack_ffffffa4);
    if (uVar10 != 0) {
      if (num_debug_info_entries != 0) {
        puVar11 = &debug_information->num_range_lists;
        __nmemb = 0;
        do {
          uVar10 = *puVar11;
          puVar11 = puVar11 + 0x14;
          __nmemb = uVar10 + __nmemb;
        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);
        if (__nmemb != 0) {
          puVar11 = (uint *)xmalloc(__nmemb * 0xc);
          if (num_debug_info_entries != 0) {
            pdVar12 = debug_information + num_debug_info_entries;
            pdVar17 = debug_information;
            puVar21 = puVar11;
            do {
              uVar10 = pdVar17->num_range_lists;
              if (uVar10 != 0) {
                pdVar13 = pdVar17->range_lists;
                pdVar2 = pdVar13 + uVar10;
                puVar18 = puVar21;
                do {
                  dVar5 = *pdVar13;
                  uVar20 = *(uint *)((int)pdVar13 + 4);
                  pdVar13 = pdVar13 + 1;
                  puVar18[2] = (uint)pdVar17;
                  *puVar18 = (uint)dVar5;
                  puVar18[1] = uVar20;
                  puVar18 = puVar18 + 3;
                } while (pdVar13 != pdVar2);
                puVar21 = puVar21 + uVar10 * 3;
              }
              pdVar17 = pdVar17 + 1;
            } while (pdVar12 != pdVar17);
          }
          qsort(puVar11,__nmemb,0xc,range_entry_compar);
          if (dwarf_check == 0) {
            section_00 = (dwarf_section *)section->name;
            section_1 = extraout_ECX;
          }
          else {
            uVar10 = *puVar11;
            section_00 = (dwarf_section *)section->name;
            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);
            if (section_1 != (dwarf_section *)0x0) {
              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
              warn(pcVar14,section_00,uVar10);
              section_00 = (dwarf_section *)section->name;
              section_1 = extraout_ECX_00;
            }
          }
          introduce(section_00,(bfd_boolean)&section->filename,section_1);
          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
          printf(pcVar14);
          pcVar19 = display_debug_ranges_list;
          if (pcVar7 != (char *)0x0) {
            pcVar19 = display_debug_rnglists_list;
          }
          sVar22 = 0;
          puVar21 = puVar11;
          local_34 = puVar3;
          do {
            while( true ) {
              uVar10 = local_28;
              if (pcVar7 == (char *)0x0) {
                uVar10 = *(uint *)puVar21[2];
              }
              uVar20 = *puVar21;
              puVar24 = puVar3 + uVar20;
              if (6 < uVar10 - 2) break;
              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {
                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
                warn(pcVar14,uVar20,sVar22);
              }
              else {
                uVar8 = ((uint *)puVar21[2])[5];
                if ((dwarf_check != 0) && (sVar22 != 0)) {
                  if (local_38 < puVar24) {
                    pcVar14 = section->name;
                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"
                                                ,5);
                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);
                  }
                  else if (puVar24 < local_38) {
                    if (puVar24 == local_34) goto LAB_00032d5f;
                    pcVar14 = section->name;
                    pcVar15 = (char *)dcgettext(0,
                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
                                                ,5);
                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);
                  }
                }
                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);
                local_38 = puVar24;
                local_34 = puVar24;
              }
LAB_00032d5f:
              sVar22 = sVar22 + 1;
              puVar21 = puVar21 + 3;
              if (__nmemb == sVar22) goto LAB_00032e7c;
            }
            sVar22 = sVar22 + 1;
            puVar21 = puVar21 + 3;
            pcVar14 = (char *)dcgettext(0,
                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"
                                        ,5);
            warn(pcVar14,uVar10,uVar20);
          } while (__nmemb != sVar22);
LAB_00032e7c:
          putc(10,*(FILE **)PTR_stdout_00072fdc);
          free(puVar11);
          return 1;
        }
      }
      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
      printf(pcVar7);
      return 1;
    }
    pcVar7 = section->name;
    uVar10 = 5;
    pcVar14 = (char *)dcgettext(0,
                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                                ,5);
LAB_00032fe2:
    warn(pcVar14,pcVar7,uVar10);
  }
  else {
    puVar24 = puVar3 + 4;
    if (puVar24 < puVar6) {
      uVar8 = 4;
LAB_0003296f:
      eVar25 = (*byte_get)(puVar3,uVar8);
      local_4c = (undefined4)eVar25;
      if (eVar25 == 0xffffffff) {
        puVar23 = puVar3 + 0xc;
        if (puVar23 < puVar6) {
          iVar16 = 8;
        }
        else {
          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {
            iVar16 = 8;
            local_4c = 0;
            uVar10 = (uint)section->size;
            uVar20 = *(uint *)((int)&section->size + 4);
            lVar4 = 0xc;
            goto LAB_000329b6;
          }
          iVar16 = uVar10 - 4;
        }
        eVar25 = (*byte_get)(puVar24,iVar16);
        local_4c = (undefined4)eVar25;
        uVar10 = (uint)section->size;
        uVar20 = *(uint *)((int)&section->size + 4);
        lVar4 = eVar25 + 0xc;
        iVar16 = 8;
      }
      else {
        uVar10 = (uint)section->size;
        uVar20 = *(uint *)((int)&section->size + 4);
        iVar16 = 4;
        lVar4 = eVar25 + 4;
        puVar23 = puVar24;
      }
LAB_000329b6:
      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);
      puVar24 = puVar23;
      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {
LAB_00032a32:
        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));
        if (bVar9 == 0) {
          pcVar7 = (char *)dcgettext(0,
                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                                     ,5);
          warn(pcVar7,local_4c);
          return 0;
        }
      }
    }
    else {
      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;
      iVar16 = 4;
      local_4c = 0;
      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;
    }
    puVar23 = puVar24 + 2;
    if (puVar23 < puVar6) {
      iVar16 = 2;
LAB_00032a8d:
      eVar25 = (*byte_get)(puVar24,iVar16);
      if (eVar25 == 5) {
        puVar1 = puVar24 + 3;
        if (puVar1 < puVar6) {
          iVar16 = 1;
LAB_00032abc:
          eVar25 = (*byte_get)(puVar23,iVar16);
          local_28 = (uint)(byte)eVar25;
          if (puVar24 + 4 < puVar6) goto LAB_00032df4;
          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))
          goto LAB_00032df9;
LAB_00032af4:
          local_38 = puVar24 + 8;
          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;
LAB_00032b01:
          iVar16 = 4;
LAB_00032b06:
          local_38 = puVar24 + 8;
          eVar25 = (*byte_get)(puVar24 + 4,iVar16);
          if (eVar25 != 0) {
            pcVar7 = section->name;
            pcVar14 = (char *)dcgettext(0,
                                        "The %s section contains unsupported offset entry count: %u.\n"
                                        ,5);
            warn(pcVar14,pcVar7,(undefined4)eVar25);
            return 0;
          }
          goto LAB_00032b1b;
        }
        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))
        goto LAB_00032abc;
        local_28 = 0;
        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;
LAB_00032df4:
        iVar16 = 1;
LAB_00032df9:
        eVar25 = (*byte_get)(puVar1,iVar16);
        if (eVar25 == 0) {
          local_38 = puVar24 + 8;
          if (local_38 < puVar6) goto LAB_00032b01;
          if ((puVar6 <= puVar24 + 4) ||
             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;
          goto LAB_00032b06;
        }
        pcVar7 = section->name;
        pcVar14 = (char *)dcgettext(0,
                                    "The %s section contains unsupported segment selector size: %d.\n"
                                    ,5);
        uVar10 = (uint)(byte)eVar25;
        goto LAB_00032fe2;
      }
    }
    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))
    goto LAB_00032a8d;
    pcVar7 = (char *)dcgettext(0,
                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",
                               5);
    warn(pcVar7);
  }
  return 0;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 FUN_00032900(int param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  byte bVar6;
  short sVar7;
  uint uVar8;
  char *pcVar9;
  uint uVar10;
  undefined4 uVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  char *pcVar15;
  undefined4 uVar16;
  int iVar17;
  uint uVar18;
  size_t __nmemb;
  int *piVar19;
  code *pcVar20;
  int *piVar21;
  size_t sVar22;
  uint uVar23;
  uint uVar24;
  longlong lVar25;
  uint uVar26;
  undefined4 local_4c;
  uint local_38;
  uint local_34;
  uint local_28;
  
  uVar26 = *(uint *)(param_1 + 0x1c);
  uVar2 = *(uint *)(param_1 + 0x10);
  uVar24 = *(uint *)(param_1 + 0x20);
  pcVar9 = *(char **)(param_1 + 8);
  uVar8 = uVar2 + uVar26;
  if (uVar26 == 0) {
    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar15,pcVar9);
    return 0;
  }
  pcVar9 = strstr(pcVar9,"debug_rnglists");
  if (pcVar9 == (char *)0x0) {
    local_28 = 0;
    local_38 = uVar2;
LAB_00032b1b:
    iVar17 = FUN_00032500();
    if (iVar17 != 0) {
      if (DAT_0007694c != 0) {
        piVar12 = (int *)(DAT_00076944 + 0x48);
        __nmemb = 0;
        do {
          iVar17 = *piVar12;
          piVar12 = piVar12 + 0x14;
          __nmemb = iVar17 + __nmemb;
        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));
        if (__nmemb != 0) {
          piVar12 = (int *)xmalloc(__nmemb * 0xc);
          if (DAT_0007694c != 0) {
            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;
            iVar17 = DAT_00076944;
            piVar21 = piVar12;
            do {
              iVar3 = *(int *)(iVar17 + 0x48);
              if (iVar3 != 0) {
                piVar14 = *(int **)(iVar17 + 0x44);
                piVar1 = piVar14 + iVar3 * 2;
                piVar19 = piVar21;
                do {
                  iVar4 = *piVar14;
                  iVar5 = piVar14[1];
                  piVar14 = piVar14 + 2;
                  piVar19[2] = iVar17;
                  *piVar19 = iVar4;
                  piVar19[1] = iVar5;
                  piVar19 = piVar19 + 3;
                } while (piVar14 != piVar1);
                piVar21 = piVar21 + iVar3 * 3;
              }
              iVar17 = iVar17 + 0x50;
            } while (iVar13 != iVar17);
          }
          qsort(piVar12,__nmemb,0xc,FUN_0001c860);
          if (DAT_00074140 != 0) {
            iVar17 = *piVar12;
            uVar11 = *(undefined4 *)(param_1 + 8);
            if (iVar17 != 0 || piVar12[1] != 0) {
              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
              warn(uVar16,uVar11,iVar17);
            }
          }
          FUN_0001ec20();
          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
          printf(pcVar15);
          pcVar20 = FUN_0001de70;
          if (pcVar9 != (char *)0x0) {
            pcVar20 = FUN_00021b80;
          }
          sVar22 = 0;
          piVar21 = piVar12;
          local_34 = uVar2;
          do {
            while( true ) {
              uVar26 = local_28;
              if (pcVar9 == (char *)0x0) {
                uVar26 = *(uint *)piVar21[2];
              }
              iVar17 = *piVar21;
              uVar24 = uVar2 + iVar17;
              if (6 < uVar26 - 2) break;
              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {
                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
                warn(uVar11,iVar17,sVar22);
              }
              else {
                uVar23 = ((uint *)piVar21[2])[5];
                if ((DAT_00074140 != 0) && (sVar22 != 0)) {
                  if (local_38 < uVar24) {
                    uVar11 = *(undefined4 *)(param_1 + 8);
                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);
                  }
                  else if (uVar24 < local_38) {
                    if (uVar24 == local_34) goto LAB_00032d5f;
                    uVar11 = *(undefined4 *)(param_1 + 8);
                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);
                  }
                }
                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);
                local_38 = uVar24;
                local_34 = uVar24;
              }
LAB_00032d5f:
              sVar22 = sVar22 + 1;
              piVar21 = piVar21 + 3;
              if (__nmemb == sVar22) goto LAB_00032e7c;
            }
            sVar22 = sVar22 + 1;
            piVar21 = piVar21 + 3;
            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
            warn(uVar11,uVar26,iVar17);
          } while (__nmemb != sVar22);
LAB_00032e7c:
          putc(10,*(FILE **)PTR_stdout_00072fdc);
          free(piVar12);
          return 1;
        }
      }
      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
      printf(pcVar9);
      return 1;
    }
    uVar11 = *(undefined4 *)(param_1 + 8);
    uVar26 = 5;
    uVar16 = dcgettext(0,
                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                       ,5);
LAB_00032fe2:
    warn(uVar16,uVar11,uVar26);
  }
  else {
    uVar23 = uVar2 + 4;
    if (uVar23 < uVar8) {
      uVar10 = 4;
LAB_0003296f:
      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);
      local_4c = (undefined4)lVar25;
      if (lVar25 == 0xffffffff) {
        uVar24 = uVar2 + 0xc;
        if (uVar24 < uVar8) {
          iVar17 = 8;
        }
        else {
          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {
            iVar17 = 8;
            local_4c = 0;
            uVar26 = *(uint *)(param_1 + 0x1c);
            uVar10 = *(uint *)(param_1 + 0x20);
            lVar25 = 0xc;
            goto LAB_000329b6;
          }
          iVar17 = uVar26 - 4;
        }
        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);
        local_4c = (undefined4)lVar25;
        uVar26 = *(uint *)(param_1 + 0x1c);
        uVar10 = *(uint *)(param_1 + 0x20);
        lVar25 = lVar25 + 0xc;
        iVar17 = 8;
      }
      else {
        uVar26 = *(uint *)(param_1 + 0x1c);
        uVar10 = *(uint *)(param_1 + 0x20);
        iVar17 = 4;
        lVar25 = lVar25 + 4;
        uVar24 = uVar23;
      }
LAB_000329b6:
      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);
      uVar23 = uVar24;
      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {
LAB_00032a32:
        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);
        if (iVar17 == 0) {
          uVar11 = dcgettext(0,
                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                             ,5);
          warn(uVar11,local_4c);
          return 0;
        }
      }
    }
    else {
      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;
      iVar17 = 4;
      local_4c = 0;
      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;
    }
    uVar26 = uVar23 + 2;
    if (uVar26 < uVar8) {
      iVar17 = 2;
LAB_00032a8d:
      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);
      if (sVar7 == 5) {
        uVar24 = uVar23 + 3;
        if (uVar24 < uVar8) {
          iVar17 = 1;
LAB_00032abc:
          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);
          local_28 = (uint)bVar6;
          if (uVar23 + 4 < uVar8) goto LAB_00032df4;
          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;
LAB_00032af4:
          local_38 = uVar23 + 8;
          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;
LAB_00032b01:
          iVar17 = 4;
LAB_00032b06:
          local_38 = uVar23 + 8;
          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);
          if (iVar17 != 0) {
            uVar11 = *(undefined4 *)(param_1 + 8);
            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);
            warn(uVar16,uVar11,iVar17);
            return 0;
          }
          goto LAB_00032b1b;
        }
        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;
        local_28 = 0;
        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;
LAB_00032df4:
        iVar17 = 1;
LAB_00032df9:
        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);
        if (bVar6 == 0) {
          local_38 = uVar23 + 8;
          if (local_38 < uVar8) goto LAB_00032b01;
          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))
          goto LAB_00032b1b;
          goto LAB_00032b06;
        }
        uVar11 = *(undefined4 *)(param_1 + 8);
        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);
        uVar26 = (uint)bVar6;
        goto LAB_00032fe2;
      }
    }
    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;
    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);
    warn(uVar11);
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x406f7
SUB ESP,0x4c
MOV ECX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [ECX + 0x1c]
MOV EAX,dword ptr [EAX + 0x10]
MOV EBP,dword ptr [ECX + 0x20]
MOV ESI,dword ptr [ECX + 0x8]
MOV dword ptr [ESP + 0xc],EAX
ADD EAX,EDI
MOV dword ptr [ESP + 0x8],EAX
TEST EDI,EDI
JZ 0x00032d88
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe251a]
PUSH EAX
PUSH ESI
CALL 0x00014060
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0xc]
JZ 0x00032ee0
MOV ECX,dword ptr [ESP + 0x8]
LEA ESI,[EAX + 0x4]
CMP ESI,ECX
JNC 0x00032a00
MOV EAX,0x4
SUB ESP,0x8
LEA EBP,[EBX + 0x3b4c]
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL dword ptr [EBP]
MOV ECX,EDX
MOV EDX,EAX
NOT EAX
ADD ESP,0x10
MOV dword ptr [ESP + 0x14],ECX
OR ECX,EAX
MOV dword ptr [ESP + 0x10],EDX
JZ 0x00032eee
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [ESP + 0x14]
ADD EAX,0x4
MOV EDI,dword ptr [ECX + 0x1c]
MOV EBP,dword ptr [ECX + 0x20]
MOV ECX,0x4
ADC EDX,0x0
CMP EDI,EAX
SBB EBP,EDX
JC 0x00032a32
MOV EAX,dword ptr [ESP + 0x8]
LEA EDI,[ESI + 0x2]
CMP EDI,EAX
JC 0x00032a88
CMP ESI,EAX
JC 0x00032db8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfc1c]
XOR EDI,EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
MOV dword ptr [ESP],EAX
CALL 0x00048d70
ADD ESP,0x10
ADD ESP,0x4c
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EAX,ECX
JNC 0x00032a10
LEA EAX,[EDI + -0x1]
CMP EAX,0x7
JBE 0x000330b9
MOV EAX,0x4
XOR EDX,EDX
MOV ECX,0x4
MOV dword ptr [ESP + 0x10],0x0
CMP EDI,EAX
MOV dword ptr [ESP + 0x14],0x0
SBB EBP,EDX
JNC 0x000329bc
SUB ESP,0x4
MOV EAX,ESI
XOR EDX,EDX
MOV EDI,dword ptr [ESP + 0x64]
SUB EAX,dword ptr [EDI + 0x10]
PUSH EDX
SUB EAX,ECX
PUSH EAX
PUSH dword ptr [ESP + 0x6c]
CALL 0x0001c250
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x000329bc
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfbc0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP ESI
POP EBP
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x00048d70
ADD ESP,0x10
JMP 0x000329f3
MOV EAX,0x2
SUB ESP,0x8
LEA EBP,[EBX + 0x3b4c]
PUSH EAX
PUSH ESI
CALL dword ptr [EBP]
ADD ESP,0x10
CMP AX,0x5
JNZ 0x000329d3
MOV EAX,dword ptr [ESP + 0x8]
LEA ECX,[ESI + 0x3]
CMP ECX,EAX
JNC 0x00032dd0
MOV EAX,0x1
MOV dword ptr [ESP + 0x10],ECX
SUB ESP,0x8
PUSH EAX
PUSH EDI
LEA EDI,[ESI + 0x4]
CALL dword ptr [EBP]
MOV byte ptr [ESP + 0x44],AL
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x10]
CMP EDI,EAX
JC 0x00032df4
CMP ECX,EAX
JNC 0x00032af4
SUB EAX,ECX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00032df9
LEA EAX,[ESI + 0x8]
MOV dword ptr [ESP + 0x24],EAX
CMP dword ptr [ESP + 0x8],EAX
JBE 0x00032b1b
MOV EAX,0x4
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL dword ptr [EBP]
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0003308a
MOV EAX,dword ptr [ESP + 0x64]
CALL 0x00032500
TEST EAX,EAX
JZ 0x00032fc6
MOV EDX,dword ptr [EBX + 0x394c]
TEST EDX,EDX
JZ 0x00032f92
MOV ECX,dword ptr [EBX + 0x3944]
LEA EDX,[EDX + EDX*0x4]
SHL EDX,0x4
LEA EAX,[ECX + 0x48]
LEA ECX,[ECX + EDX*0x1 + 0x48]
XOR EDX,EDX
NOP
MOV ESI,dword ptr [EAX]
ADD EAX,0x50
ADD ESI,EDX
MOV EDX,ESI
CMP EAX,ECX
JNZ 0x00032b50
MOV dword ptr [ESP + 0x20],ESI
TEST ESI,ESI
JZ 0x00032f92
LEA EAX,[ESI + ESI*0x2]
SUB ESP,0xc
SHL EAX,0x2
PUSH EAX
CALL 0x000142b0
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EBX + 0x394c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00032bf0
MOV ECX,dword ptr [EBX + 0x3944]
LEA EAX,[EAX + EAX*0x4]
MOV EBP,dword ptr [ESP + 0x30]
SHL EAX,0x4
ADD EAX,ECX
MOV dword ptr [ESP + 0x28],EAX
NOP
MOV EDI,dword ptr [ECX + 0x48]
TEST EDI,EDI
JZ 0x00032be7
MOV EAX,dword ptr [ECX + 0x44]
MOV dword ptr [ESP + 0x10],EBP
MOV EDX,EBP
MOV dword ptr [ESP + 0x18],EDI
LEA ESI,[EAX + EDI*0x8]
LEA ESI,[ESI]
NOP
MOV EDI,dword ptr [EAX]
MOV EBP,dword ptr [EAX + 0x4]
ADD EAX,0x8
MOV dword ptr [EDX + 0x8],ECX
ADD EDX,0xc
MOV dword ptr [EDX + -0xc],EDI
MOV dword ptr [EDX + -0x8],EBP
CMP EAX,ESI
JNZ 0x00032bc0
MOV EDI,dword ptr [ESP + 0x18]
MOV EBP,dword ptr [ESP + 0x10]
LEA EAX,[EDI + EDI*0x2]
LEA EBP,[EBP + EAX*0x4]
ADD ECX,0x50
CMP dword ptr [ESP + 0x28],ECX
JNZ 0x00032ba0
LEA EAX,[EBX + 0xfffa9860]
PUSH EAX
PUSH 0xc
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x3c]
CALL 0x00014720
MOV EAX,dword ptr [EBX + 0x1140]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00032fba
MOV EAX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [ESP + 0x60]
MOV EDI,dword ptr [EAX]
MOV ESI,dword ptr [ESI + 0x8]
MOV ECX,EDI
OR ECX,dword ptr [EAX + 0x4]
JNZ 0x0003302f
MOV EAX,dword ptr [ESP + 0x60]
LEA EDX,[EAX + 0xc]
MOV EAX,ESI
CALL 0x0001ec20
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2192]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
MOV dword ptr [ESP],EAX
CALL 0x000140b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESP + 0x30]
LEA EDX,[EBX + 0xfffaae70]
TEST EAX,EAX
LEA EAX,[EBX + 0xfffaeb80]
CMOVNZ EDX,EAX
MOV EAX,dword ptr [ESP + 0xc]
XOR EBP,EBP
MOV dword ptr [ESP + 0x28],EAX
MOVZX EAX,byte ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x2c],EDX
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffdfd30]
MOV dword ptr [ESP + 0x38],EAX
JMP 0x00032d6f
MOV EDX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EDI]
MOV ESI,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x10],EAX
ADD ESI,EAX
LEA EAX,[EDX + -0x2]
CMP EAX,0x6
JA 0x00032e40
CMP dword ptr [ESP + 0xc],ESI
JA 0x00032eb0
CMP dword ptr [ESP + 0x8],ESI
JBE 0x00032eb0
MOV EAX,dword ptr [EBX + 0x1140]
MOV ECX,dword ptr [ECX + 0x14]
TEST EAX,EAX
JZ 0x00032d40
TEST EBP,EBP
JZ 0x00032d40
CMP ESI,dword ptr [ESP + 0x24]
JA 0x00032f45
JNC 0x00032d40
MOV dword ptr [ESP + 0x3c],ECX
MOV dword ptr [ESP + 0x34],EDX
CMP ESI,dword ptr [ESP + 0x28]
JZ 0x00032d5f
MOV EAX,dword ptr [ESP + 0x60]
SUB ESP,0x4
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBX + 0xfffdfd8c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0x3c]
SUB ECX,dword ptr [ESP + 0x24]
PUSH ECX
PUSH EAX
CALL 0x00048d70
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x3c]
MOV EDX,dword ptr [ESP + 0x34]
LEA ESI,[ESI]
NOP
SUB ESP,0xc
PUSH ECX
PUSH dword ptr [ESP + 0x20]
PUSH EDX
PUSH dword ptr [ESP + 0x20]
PUSH ESI
MOV EAX,dword ptr [ESP + 0x4c]
CALL EAX
ADD ESP,0x20
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x24],ESI
ADD EBP,0x1
ADD EDI,0xc
CMP dword ptr [ESP + 0x20],EBP
JZ 0x00032e7c
MOV EAX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [EDI + 0x8]
TEST EAX,EAX
JNZ 0x00032ca0
MOV EDX,dword ptr [ECX]
JMP 0x00032ca4
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe072f]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000140b0
ADD ESP,0x10
MOV EAX,EDI
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x8]
SUB EAX,ESI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00032a8d
JMP 0x000329d3
CMP EDI,EAX
JNC 0x00032de2
SUB EAX,EDI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00032abc
LEA EDI,[ESI + 0x4]
CMP dword ptr [ESP + 0x8],EDI
MOV byte ptr [ESP + 0x34],0x0
JBE 0x00032af4
MOV EAX,0x1
SUB ESP,0x8
PUSH EAX
PUSH ECX
CALL dword ptr [EBP]
ADD ESP,0x10
TEST AL,AL
JNZ 0x0003305c
LEA EAX,[ESI + 0x8]
MOV dword ptr [ESP + 0x24],EAX
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP ESI,EAX
JC 0x00032b01
CMP EDI,EAX
JNC 0x00032b1b
SUB EAX,EDI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JA 0x00032b1b
JMP 0x00032b06
MOV dword ptr [ESP + 0x34],EDX
LEA EAX,[EBX + 0xfffdfcf4]
SUB ESP,0x4
ADD EBP,0x1
PUSH 0x5
ADD EDI,0xc
PUSH EAX
PUSH 0x0
CALL 0x000141f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESP + 0x3c]
PUSH EDX
PUSH EAX
CALL 0x00048d70
ADD ESP,0x10
CMP dword ptr [ESP + 0x20],EBP
JNZ 0x00032d6f
MOV EAX,dword ptr [EBX + 0xffffffdc]
SUB ESP,0x8
MOV EDI,0x1
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x000146a0
POP EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00014120
ADD ESP,0x10
MOV EAX,EDI
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
CALL 0x000141f0
ADD ESP,0xc
PUSH EBP
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x00048d70
ADD ESP,0x10
JMP 0x00032d5f
MOV dword ptr [ESP + 0x24],EAX
MOV byte ptr [ESP + 0x34],0x0
JMP 0x00032b1b
MOV EAX,dword ptr [ESP + 0xc]
LEA ECX,[EAX + 0xc]
MOV EAX,dword ptr [ESP + 0x8]
CMP ECX,EAX
JC 0x00032ff3
CMP ESI,EAX
JNC 0x00032f18
LEA EAX,[EDI + -0x5]
CMP EAX,0x7
JA 0x00032f18
SUB EDI,0x4
JMP 0x00032ff8
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,ECX
XOR EDX,EDX
MOV ECX,0x8
MOV dword ptr [ESP + 0x10],0x0
MOV EDI,dword ptr [EAX + 0x1c]
MOV EBP,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x14],0x0
MOV EAX,0xc
JMP 0x000329b6
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x3c],ECX
SUB ESP,0x4
MOV dword ptr [ESP + 0x38],EDX
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBX + 0xfffdfd5c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0x3c]
SUB ECX,dword ptr [ESP + 0x24]
PUSH ECX
PUSH EAX
CALL 0x00048d70
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x3c]
JMP 0x00032d40
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfca0]
MOV EDI,0x1
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
MOV dword ptr [ESP],EAX
CALL 0x000140b0
ADD ESP,0x10
JMP 0x000329f3
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [EAX + 0x8]
JMP 0x00032c2f
MOV EAX,dword ptr [ESP + 0x60]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffdfb0c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP EDX
POP ECX
PUSH ESI
XOR EDI,EDI
PUSH EAX
CALL 0x00048d70
ADD ESP,0x10
JMP 0x000329f3
MOV EDI,0x8
MOV dword ptr [ESP + 0x18],ECX
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL dword ptr [EBP]
MOV ESI,dword ptr [ESP + 0x70]
MOV EDI,dword ptr [ESI + 0x1c]
MOV EBP,dword ptr [ESI + 0x20]
MOV dword ptr [ESP + 0x20],EAX
ADD EAX,0xc
MOV dword ptr [ESP + 0x24],EDX
ADC EDX,0x0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x18]
MOV ESI,ECX
MOV ECX,0x8
JMP 0x000329b6
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfcc8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00048d70
MOV EAX,dword ptr [ESP + 0x70]
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0x8]
JMP 0x00032c2f
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x60]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffdd274]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0xc]
MOVZX EDX,DL
PUSH EDX
JMP 0x00032fe2
MOV EAX,dword ptr [ESP + 0x60]
SUB ESP,0x4
MOV EDI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffdfc60]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
ADD ESP,0xc
PUSH ESI
PUSH EDI
XOR EDI,EDI
PUSH EAX
CALL 0x00048d70
ADD ESP,0x10
JMP 0x000329f3
MOV EAX,EDI
JMP 0x0003296f
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00032900(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined4 FUN_00032900(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00032900(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "short sVar7;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = *(char **)(param_1 + 8);" (assignment_expression "pcVar9 = *(char **)(param_1 + 8)" identifier = (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = uVar2 + uVar26;" (assignment_expression "uVar8 = uVar2 + uVar26" identifier = (binary_expression "uVar2 + uVar26" identifier + identifier)) ;) (if_statement "if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" { (expression_statement "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nThe %s section is empty.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nThe %s section is empty.\n",5)" identifier (argument_list "(0,"\nThe %s section is empty.\n",5)" ( number_literal , (string_literal ""\nThe %s section is empty.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar15,pcVar9);" (call_expression "printf(pcVar15,pcVar9)" identifier (argument_list "(pcVar15,pcVar9)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar9 = strstr(pcVar9,"debug_rnglists");" (assignment_expression "pcVar9 = strstr(pcVar9,"debug_rnglists")" identifier = (call_expression "strstr(pcVar9,"debug_rnglists")" identifier (argument_list "(pcVar9,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_38 = uVar2;" (assignment_expression "local_38 = uVar2" identifier = identifier) ;) (labeled_statement "LAB_00032b1b:\n    iVar17 = FUN_00032500();" statement_identifier : (expression_statement "iVar17 = FUN_00032500();" (assignment_expression "iVar17 = FUN_00032500()" identifier = (call_expression "FUN_00032500()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" { (if_statement "if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" if (parenthesized_expression "(DAT_0007694c != 0)" ( (binary_expression "DAT_0007694c != 0" identifier != number_literal) )) (compound_statement "{\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" { (expression_statement "piVar12 = (int *)(DAT_00076944 + 0x48);" (assignment_expression "piVar12 = (int *)(DAT_00076944 + 0x48)" identifier = (cast_expression "(int *)(DAT_00076944 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00076944 + 0x48)" ( (binary_expression "DAT_00076944 + 0x48" identifier + number_literal) )))) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));" do (compound_statement "{\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        }" { (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12 = piVar12 + 0x14;" (assignment_expression "piVar12 = piVar12 + 0x14" identifier = (binary_expression "piVar12 + 0x14" identifier + number_literal)) ;) (expression_statement "__nmemb = iVar17 + __nmemb;" (assignment_expression "__nmemb = iVar17 + __nmemb" identifier = (binary_expression "iVar17 + __nmemb" identifier + identifier)) ;) }) while (parenthesized_expression "(piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50))" ( (binary_expression "piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" identifier != (cast_expression "(int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" ( (binary_expression "DAT_00076944 + 0x48 + DAT_0007694c * 0x50" (binary_expression "DAT_00076944 + 0x48" identifier + number_literal) + (binary_expression "DAT_0007694c * 0x50" identifier * number_literal)) )))) )) ;) (if_statement "if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" if (parenthesized_expression "(__nmemb != 0)" ( (binary_expression "__nmemb != 0" identifier != number_literal) )) (compound_statement "{\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" { (expression_statement "piVar12 = (int *)xmalloc(__nmemb * 0xc);" (assignment_expression "piVar12 = (int *)xmalloc(__nmemb * 0xc)" identifier = (cast_expression "(int *)xmalloc(__nmemb * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(__nmemb * 0xc)" identifier (argument_list "(__nmemb * 0xc)" ( (binary_expression "__nmemb * 0xc" identifier * number_literal) ))))) ;) (if_statement "if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" if (parenthesized_expression "(DAT_0007694c != 0)" ( (binary_expression "DAT_0007694c != 0" identifier != number_literal) )) (compound_statement "{\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" { (expression_statement "iVar13 = DAT_0007694c * 0x50 + DAT_00076944;" (assignment_expression "iVar13 = DAT_0007694c * 0x50 + DAT_00076944" identifier = (binary_expression "DAT_0007694c * 0x50 + DAT_00076944" (binary_expression "DAT_0007694c * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "iVar17 = DAT_00076944;" (assignment_expression "iVar17 = DAT_00076944" identifier = identifier) ;) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" identifier = identifier) ;) (do_statement "do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);" do (compound_statement "{\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            }" { (expression_statement "iVar3 = *(int *)(iVar17 + 0x48);" (assignment_expression "iVar3 = *(int *)(iVar17 + 0x48)" identifier = (pointer_expression "*(int *)(iVar17 + 0x48)" * (cast_expression "(int *)(iVar17 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x48)" ( (binary_expression "iVar17 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" { (expression_statement "piVar14 = *(int **)(iVar17 + 0x44);" (assignment_expression "piVar14 = *(int **)(iVar17 + 0x44)" identifier = (pointer_expression "*(int **)(iVar17 + 0x44)" * (cast_expression "(int **)(iVar17 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x44)" ( (binary_expression "iVar17 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = piVar14 + iVar3 * 2;" (assignment_expression "piVar1 = piVar14 + iVar3 * 2" identifier = (binary_expression "piVar14 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal))) ;) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" identifier = identifier) ;) (do_statement "do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);" do (compound_statement "{\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                }" { (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (expression_statement "piVar14 = piVar14 + 2;" (assignment_expression "piVar14 = piVar14 + 2" identifier = (binary_expression "piVar14 + 2" identifier + number_literal)) ;) (expression_statement "piVar19[2] = iVar17;" (assignment_expression "piVar19[2] = iVar17" (subscript_expression "piVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19[1] = iVar5;" (assignment_expression "piVar19[1] = iVar5" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" identifier = (binary_expression "piVar19 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar14 != piVar1)" ( (binary_expression "piVar14 != piVar1" identifier != identifier) )) ;) (expression_statement "piVar21 = piVar21 + iVar3 * 3;" (assignment_expression "piVar21 = piVar21 + iVar3 * 3" identifier = (binary_expression "piVar21 + iVar3 * 3" identifier + (binary_expression "iVar3 * 3" identifier * number_literal))) ;) })) (expression_statement "iVar17 = iVar17 + 0x50;" (assignment_expression "iVar17 = iVar17 + 0x50" identifier = (binary_expression "iVar17 + 0x50" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar17)" ( (binary_expression "iVar13 != iVar17" identifier != identifier) )) ;) })) (expression_statement "qsort(piVar12,__nmemb,0xc,FUN_0001c860);" (call_expression "qsort(piVar12,__nmemb,0xc,FUN_0001c860)" identifier (argument_list "(piVar12,__nmemb,0xc,FUN_0001c860)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" if (parenthesized_expression "(DAT_00074140 != 0)" ( (binary_expression "DAT_00074140 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" { (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" if (parenthesized_expression "(iVar17 != 0 || piVar12[1] != 0)" ( (binary_expression "iVar17 != 0 || piVar12[1] != 0" (binary_expression "iVar17 != 0" identifier != number_literal) || (binary_expression "piVar12[1] != 0" (subscript_expression "piVar12[1]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" { (expression_statement "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier = (call_expression "dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier (argument_list "(0,"Range lists in %s section start at 0x%lx\n",5)" ( number_literal , (string_literal ""Range lists in %s section start at 0x%lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" identifier (argument_list "(uVar16,uVar11,iVar17)" ( identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_0001ec20();" (call_expression "FUN_0001ec20()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"    Offset   Begin    End\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"    Offset   Begin    End\n",5)" identifier (argument_list "(0,"    Offset   Begin    End\n",5)" ( number_literal , (string_literal ""    Offset   Begin    End\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar15);" (call_expression "printf(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) (expression_statement "pcVar20 = FUN_0001de70;" (assignment_expression "pcVar20 = FUN_0001de70" identifier = identifier) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar20 = FUN_00021b80;\n          }" { (expression_statement "pcVar20 = FUN_00021b80;" (assignment_expression "pcVar20 = FUN_00021b80" identifier = identifier) ;) })) (expression_statement "sVar22 = 0;" (assignment_expression "sVar22 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" identifier = identifier) ;) (expression_statement "local_34 = uVar2;" (assignment_expression "local_34 = uVar2" identifier = identifier) ;) (do_statement "do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);" do (compound_statement "{\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          }" { (while_statement "while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" { (expression_statement "uVar26 = local_28;" (assignment_expression "uVar26 = local_28" identifier = identifier) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar26 = *(uint *)piVar21[2];\n              }" { (expression_statement "uVar26 = *(uint *)piVar21[2];" (assignment_expression "uVar26 = *(uint *)piVar21[2]" identifier = (pointer_expression "*(uint *)piVar21[2]" * (cast_expression "(uint *)piVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ])))) ;) })) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uVar24 = uVar2 + iVar17;" (assignment_expression "uVar24 = uVar2 + iVar17" identifier = (binary_expression "uVar2 + iVar17" identifier + identifier)) ;) (if_statement "if (6 < uVar26 - 2) break;" if (parenthesized_expression "(6 < uVar26 - 2)" ( (binary_expression "6 < uVar26 - 2" number_literal < (binary_expression "uVar26 - 2" identifier - number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" if (parenthesized_expression "((uVar24 < uVar2) || (uVar8 <= uVar24))" ( (binary_expression "(uVar24 < uVar2) || (uVar8 <= uVar24)" (parenthesized_expression "(uVar24 < uVar2)" ( (binary_expression "uVar24 < uVar2" identifier < identifier) )) || (parenthesized_expression "(uVar8 <= uVar24)" ( (binary_expression "uVar8 <= uVar24" identifier <= identifier) ))) )) (compound_statement "{\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }" { (expression_statement "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier (argument_list "(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" ( number_literal , (string_literal ""Corrupt offset (%#8.8lx) in range entry %u\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,iVar17,sVar22);" (call_expression "warn(uVar11,iVar17,sVar22)" identifier (argument_list "(uVar11,iVar17,sVar22)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" else (compound_statement "{\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" { (expression_statement "uVar23 = ((uint *)piVar21[2])[5];" (assignment_expression "uVar23 = ((uint *)piVar21[2])[5]" identifier = (subscript_expression "((uint *)piVar21[2])[5]" (parenthesized_expression "((uint *)piVar21[2])" ( (cast_expression "(uint *)piVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ])) )) [ number_literal ])) ;) (if_statement "if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" if (parenthesized_expression "((DAT_00074140 != 0) && (sVar22 != 0))" ( (binary_expression "(DAT_00074140 != 0) && (sVar22 != 0)" (parenthesized_expression "(DAT_00074140 != 0)" ( (binary_expression "DAT_00074140 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar22 != 0)" ( (binary_expression "sVar22 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" { (if_statement "if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" if (parenthesized_expression "(local_38 < uVar24)" ( (binary_expression "local_38 < uVar24" identifier < identifier) )) (compound_statement "{\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (call_expression "dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" identifier (argument_list "(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" ( number_literal , (string_literal ""There is a hole [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" identifier (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" ( identifier , (binary_expression "local_38 - uVar2" identifier - identifier) , identifier , identifier ))) ;) }) (else_clause "else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" else (if_statement "if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" if (parenthesized_expression "(uVar24 < local_38)" ( (binary_expression "uVar24 < local_38" identifier < identifier) )) (compound_statement "{\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" { (if_statement "if (uVar24 == local_34) goto LAB_00032d5f;" if (parenthesized_expression "(uVar24 == local_34)" ( (binary_expression "uVar24 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00032d5f;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (call_expression "dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" identifier (argument_list "(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" ( number_literal , (string_literal ""There is an overlap [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" identifier (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" ( identifier , (binary_expression "local_38 - uVar2" identifier - identifier) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);" (call_expression "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(uVar24,uVar8,uVar26,iVar17,uVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_38 = uVar24;" (assignment_expression "local_38 = uVar24" identifier = identifier) ;) (expression_statement "local_34 = uVar24;" (assignment_expression "local_34 = uVar24" identifier = identifier) ;) }))) (labeled_statement "LAB_00032d5f:\n              sVar22 = sVar22 + 1;" statement_identifier : (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;)) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" identifier = (binary_expression "piVar21 + 3" identifier + number_literal)) ;) (if_statement "if (__nmemb == sVar22) goto LAB_00032e7c;" if (parenthesized_expression "(__nmemb == sVar22)" ( (binary_expression "__nmemb == sVar22" identifier == identifier) )) (goto_statement "goto LAB_00032e7c;" goto statement_identifier ;)) })) (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" identifier = (binary_expression "piVar21 + 3" identifier + number_literal)) ;) (expression_statement "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" identifier (argument_list "(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" ( number_literal , (string_literal ""Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,uVar26,iVar17);" (call_expression "warn(uVar11,uVar26,iVar17)" identifier (argument_list "(uVar11,uVar26,iVar17)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__nmemb != sVar22)" ( (binary_expression "__nmemb != sVar22" identifier != identifier) )) ;) (labeled_statement "LAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);" statement_identifier : (expression_statement "putc(10,*(FILE **)PTR_stdout_00072fdc);" (call_expression "putc(10,*(FILE **)PTR_stdout_00072fdc)" identifier (argument_list "(10,*(FILE **)PTR_stdout_00072fdc)" ( number_literal , (pointer_expression "*(FILE **)PTR_stdout_00072fdc" * (cast_expression "(FILE **)PTR_stdout_00072fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;)) (expression_statement "free(piVar12);" (call_expression "free(piVar12)" identifier (argument_list "(piVar12)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier (argument_list "(0,"No range lists in .debug_info section.\n",5)" ( number_literal , (string_literal ""No range lists in .debug_info section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = 5;" (assignment_expression "uVar26 = 5" identifier = number_literal) ;) (expression_statement "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" identifier = (call_expression "dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" identifier (argument_list "(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" ( number_literal , (string_literal ""Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (labeled_statement "LAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);" statement_identifier : (expression_statement "warn(uVar16,uVar11,uVar26);" (call_expression "warn(uVar16,uVar11,uVar26)" identifier (argument_list "(uVar16,uVar11,uVar26)" ( identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" else (compound_statement "{\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" { (expression_statement "uVar23 = uVar2 + 4;" (assignment_expression "uVar23 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" if (parenthesized_expression "(uVar23 < uVar8)" ( (binary_expression "uVar23 < uVar8" identifier < identifier) )) (compound_statement "{\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }" { (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" statement_identifier : (expression_statement "lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar2,uVar10)" identifier = (call_expression "(*DAT_00076b4c)(uVar2,uVar10)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar2,uVar10)" ( identifier , identifier )))) ;)) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" identifier = (cast_expression "(undefined4)lVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" if (parenthesized_expression "(lVar25 == 0xffffffff)" ( (binary_expression "lVar25 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }" { (expression_statement "uVar24 = uVar2 + 0xc;" (assignment_expression "uVar24 = uVar2 + 0xc" identifier = (binary_expression "uVar2 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" if (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar17 = 8;\n        }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) }) (else_clause "else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" else (compound_statement "{\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" { (if_statement "if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" if (parenthesized_expression "((uVar8 <= uVar23) || (7 < uVar26 - 5))" ( (binary_expression "(uVar8 <= uVar23) || (7 < uVar26 - 5)" (parenthesized_expression "(uVar8 <= uVar23)" ( (binary_expression "uVar8 <= uVar23" identifier <= identifier) )) || (parenthesized_expression "(7 < uVar26 - 5)" ( (binary_expression "7 < uVar26 - 5" number_literal < (binary_expression "uVar26 - 5" identifier - number_literal)) ))) )) (compound_statement "{\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = 0xc;" (assignment_expression "lVar25 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_000329b6;" goto statement_identifier ;) })) (expression_statement "iVar17 = uVar26 - 4;" (assignment_expression "iVar17 = uVar26 - 4" identifier = (binary_expression "uVar26 - 4" identifier - number_literal)) ;) }))) (expression_statement "lVar25 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar23,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23,iVar17)" ( identifier , identifier )))) ;) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" identifier = (cast_expression "(undefined4)lVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = lVar25 + 0xc;" (assignment_expression "lVar25 = lVar25 + 0xc" identifier = (binary_expression "lVar25 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" else (compound_statement "{\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" { (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "lVar25 = lVar25 + 4;" (assignment_expression "lVar25 = lVar25 + 4" identifier = (binary_expression "lVar25 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) }))) (labeled_statement "LAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" statement_identifier : (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar23 = uVar24;" (assignment_expression "uVar23 = uVar24" identifier = identifier) ;) (if_statement "if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" if (parenthesized_expression "(uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25))" ( (binary_expression "uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 < uVar18" identifier < identifier) || (binary_expression "uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 - uVar18" identifier - identifier) < (call_expression "(uint)(uVar26 < (uint)lVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 < (uint)lVar25)" ( (binary_expression "uVar26 < (uint)lVar25" identifier < (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" statement_identifier : (expression_statement "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" (assignment_expression "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" identifier = (call_expression "FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" identifier (argument_list "(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" ( identifier , (binary_expression "(uVar23 - *(int *)(param_1 + 0x10)) - iVar17" (parenthesized_expression "(uVar23 - *(int *)(param_1 + 0x10))" ( (binary_expression "uVar23 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )) - identifier) , number_literal )))) ;)) (if_statement "if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" { (expression_statement "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);" (assignment_expression "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" identifier = (call_expression "dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" identifier (argument_list "(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" ( number_literal , (string_literal ""The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,local_4c);" (call_expression "warn(uVar11,local_4c)" identifier (argument_list "(uVar11,local_4c)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" else (compound_statement "{\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" { (if_statement "if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;" if (parenthesized_expression "((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8))" ( (binary_expression "(uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)" (parenthesized_expression "(uVar2 < uVar8)" ( (binary_expression "uVar2 < uVar8" identifier < identifier) )) && (parenthesized_expression "(uVar10 = uVar26, uVar26 - 1 < 8)" ( (comma_expression "uVar10 = uVar26, uVar26 - 1 < 8" (assignment_expression "uVar10 = uVar26" identifier = identifier) , (binary_expression "uVar26 - 1 < 8" (binary_expression "uVar26 - 1" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_0003296f;" goto statement_identifier ;)) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (if_statement "if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;" if (parenthesized_expression "(uVar24 < (uVar26 < 4))" ( (binary_expression "uVar24 < (uVar26 < 4)" identifier < (parenthesized_expression "(uVar26 < 4)" ( (binary_expression "uVar26 < 4" identifier < number_literal) ))) )) (goto_statement "goto LAB_00032a32;" goto statement_identifier ;)) }))) (expression_statement "uVar26 = uVar23 + 2;" (assignment_expression "uVar26 = uVar23 + 2" identifier = (binary_expression "uVar23 + 2" identifier + number_literal)) ;) (if_statement "if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" if (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) (compound_statement "{\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (labeled_statement "LAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" statement_identifier : (expression_statement "sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "sVar7 = (*DAT_00076b4c)(uVar23,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23,iVar17)" ( identifier , identifier )))) ;)) (if_statement "if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" if (parenthesized_expression "(sVar7 == 5)" ( (binary_expression "sVar7 == 5" identifier == number_literal) )) (compound_statement "{\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" { (expression_statement "uVar24 = uVar23 + 3;" (assignment_expression "uVar24 = uVar23 + 3" identifier = (binary_expression "uVar23 + 3" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" if (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" { (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" statement_identifier : (expression_statement "bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar26,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar26,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar26,iVar17)" ( identifier , identifier )))) ;)) (expression_statement "local_28 = (uint)bVar6;" (assignment_expression "local_28 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar23 + 4 < uVar8) goto LAB_00032df4;" if (parenthesized_expression "(uVar23 + 4 < uVar8)" ( (binary_expression "uVar23 + 4 < uVar8" (binary_expression "uVar23 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00032df4;" goto statement_identifier ;)) (if_statement "if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;" if (parenthesized_expression "((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8))" ( (binary_expression "(uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar24, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar24" identifier = (binary_expression "uVar8 - uVar24" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032df9;" goto statement_identifier ;)) (labeled_statement "LAB_00032af4:\n          local_38 = uVar23 + 8;" statement_identifier : (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;)) (if_statement "if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;" if (parenthesized_expression "(uVar8 <= uVar23 + 8)" ( (binary_expression "uVar8 <= uVar23 + 8" identifier <= (binary_expression "uVar23 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (labeled_statement "LAB_00032b01:\n          iVar17 = 4;" statement_identifier : (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;)) (labeled_statement "LAB_00032b06:\n          local_38 = uVar23 + 8;" statement_identifier : (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;)) (expression_statement "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);" (assignment_expression "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23 + 4,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23 + 4,iVar17)" ( (binary_expression "uVar23 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" identifier = (call_expression "dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" identifier (argument_list "(0,"The %s section contains unsupported offset entry count: %u.\n",5)" ( number_literal , (string_literal ""The %s section contains unsupported offset entry count: %u.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" identifier (argument_list "(uVar16,uVar11,iVar17)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;) })) (if_statement "if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;" if (parenthesized_expression "((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8))" ( (binary_expression "(uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar26, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar26" identifier = (binary_expression "uVar8 - uVar26" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032abc;" goto statement_identifier ;)) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (uVar8 <= uVar23 + 4) goto LAB_00032af4;" if (parenthesized_expression "(uVar8 <= uVar23 + 4)" ( (binary_expression "uVar8 <= uVar23 + 4" identifier <= (binary_expression "uVar23 + 4" identifier + number_literal)) )) (goto_statement "goto LAB_00032af4;" goto statement_identifier ;)) (labeled_statement "LAB_00032df4:\n        iVar17 = 1;" statement_identifier : (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" statement_identifier : (expression_statement "bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar24,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar24,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar24,iVar17)" ( identifier , identifier )))) ;)) (if_statement "if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" { (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;) (if_statement "if (local_38 < uVar8) goto LAB_00032b01;" if (parenthesized_expression "(local_38 < uVar8)" ( (binary_expression "local_38 < uVar8" identifier < identifier) )) (goto_statement "goto LAB_00032b01;" goto statement_identifier ;)) (if_statement "if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;" if (parenthesized_expression "((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))" ( (binary_expression "(uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" (parenthesized_expression "(uVar8 <= uVar23 + 4)" ( (binary_expression "uVar8 <= uVar23 + 4" identifier <= (binary_expression "uVar23 + 4" identifier + number_literal)) )) || (parenthesized_expression "(iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" ( (comma_expression "iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U" (assignment_expression "iVar17 = uVar8 - (uVar23 + 4)" identifier = (binary_expression "uVar8 - (uVar23 + 4)" identifier - (parenthesized_expression "(uVar23 + 4)" ( (binary_expression "uVar23 + 4" identifier + number_literal) )))) , (binary_expression "7 < iVar17 - 1U" number_literal < (binary_expression "iVar17 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (goto_statement "goto LAB_00032b06;" goto statement_identifier ;) })) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" identifier = (call_expression "dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" identifier (argument_list "(0,"The %s section contains unsupported segment selector size: %d.\n",5)" ( number_literal , (string_literal ""The %s section contains unsupported segment selector size: %d.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar26 = (uint)bVar6;" (assignment_expression "uVar26 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00032fe2;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" else (if_statement "if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" if (parenthesized_expression "((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8))" ( (binary_expression "(uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" (parenthesized_expression "(uVar23 < uVar8)" ( (binary_expression "uVar23 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar23, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar23" identifier = (binary_expression "uVar8 - uVar23" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032a8d;" goto statement_identifier ;)))) (expression_statement "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" identifier = (call_expression "dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" identifier (argument_list "(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" ( number_literal , (string_literal ""Only DWARF version 5 debug_rnglists info is currently supported.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11);" (call_expression "warn(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint display_debug_ranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  dwarf_vma *pdVar2;\n  uchar *puVar3;\n  longlong lVar4;\n  dwarf_vma dVar5;\n  uchar *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  bfd_boolean bVar9;\n  uint uVar10;\n  uint *puVar11;\n  debug_info *pdVar12;\n  dwarf_vma *pdVar13;\n  char *pcVar14;\n  char *pcVar15;\n  int iVar16;\n  debug_info *pdVar17;\n  dwarf_section *extraout_ECX;\n  dwarf_section *section_1;\n  dwarf_section *extraout_ECX_00;\n  size_t __nmemb;\n  uint *puVar18;\n  code *pcVar19;\n  uint uVar20;\n  uint *puVar21;\n  size_t sVar22;\n  uchar *puVar23;\n  dwarf_section *section_00;\n  uchar *puVar24;\n  elf_vma eVar25;\n  void *in_stack_ffffffa4;\n  undefined4 local_4c;\n  uchar *local_38;\n  uchar *local_34;\n  uint local_28;\n  \n  uVar10 = (uint)section->size;\n  puVar3 = section->start;\n  uVar20 = *(uint *)((int)&section->size + 4);\n  pcVar7 = section->name;\n  puVar6 = puVar3 + uVar10;\n  if (uVar10 == 0) {\n    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar14,pcVar7);\n    return 0;\n  }\n  pcVar7 = strstr(pcVar7,"debug_rnglists");\n  if (pcVar7 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = puVar3;\nLAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);\n    if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }\n    pcVar7 = section->name;\n    uVar10 = 5;\n    pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\nLAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);\n  }\n  else {\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }\n  return 0;\n}\n\n" comment comment (function_definition "int display_debug_ranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  dwarf_vma *pdVar2;\n  uchar *puVar3;\n  longlong lVar4;\n  dwarf_vma dVar5;\n  uchar *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  bfd_boolean bVar9;\n  uint uVar10;\n  uint *puVar11;\n  debug_info *pdVar12;\n  dwarf_vma *pdVar13;\n  char *pcVar14;\n  char *pcVar15;\n  int iVar16;\n  debug_info *pdVar17;\n  dwarf_section *extraout_ECX;\n  dwarf_section *section_1;\n  dwarf_section *extraout_ECX_00;\n  size_t __nmemb;\n  uint *puVar18;\n  code *pcVar19;\n  uint uVar20;\n  uint *puVar21;\n  size_t sVar22;\n  uchar *puVar23;\n  dwarf_section *section_00;\n  uchar *puVar24;\n  elf_vma eVar25;\n  void *in_stack_ffffffa4;\n  undefined4 local_4c;\n  uchar *local_38;\n  uchar *local_34;\n  uint local_28;\n  \n  uVar10 = (uint)section->size;\n  puVar3 = section->start;\n  uVar20 = *(uint *)((int)&section->size + 4);\n  pcVar7 = section->name;\n  puVar6 = puVar3 + uVar10;\n  if (uVar10 == 0) {\n    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar14,pcVar7);\n    return 0;\n  }\n  pcVar7 = strstr(pcVar7,"debug_rnglists");\n  if (pcVar7 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = puVar3;\nLAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);\n    if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }\n    pcVar7 = section->name;\n    uVar10 = 5;\n    pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\nLAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);\n  }\n  else {\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }\n  return 0;\n}" primitive_type (function_declarator "display_debug_ranges(dwarf_section *section,void *file)" identifier (parameter_list "(dwarf_section *section,void *file)" ( (parameter_declaration "dwarf_section *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  uchar *puVar1;\n  dwarf_vma *pdVar2;\n  uchar *puVar3;\n  longlong lVar4;\n  dwarf_vma dVar5;\n  uchar *puVar6;\n  char *pcVar7;\n  uint uVar8;\n  bfd_boolean bVar9;\n  uint uVar10;\n  uint *puVar11;\n  debug_info *pdVar12;\n  dwarf_vma *pdVar13;\n  char *pcVar14;\n  char *pcVar15;\n  int iVar16;\n  debug_info *pdVar17;\n  dwarf_section *extraout_ECX;\n  dwarf_section *section_1;\n  dwarf_section *extraout_ECX_00;\n  size_t __nmemb;\n  uint *puVar18;\n  code *pcVar19;\n  uint uVar20;\n  uint *puVar21;\n  size_t sVar22;\n  uchar *puVar23;\n  dwarf_section *section_00;\n  uchar *puVar24;\n  elf_vma eVar25;\n  void *in_stack_ffffffa4;\n  undefined4 local_4c;\n  uchar *local_38;\n  uchar *local_34;\n  uint local_28;\n  \n  uVar10 = (uint)section->size;\n  puVar3 = section->start;\n  uVar20 = *(uint *)((int)&section->size + 4);\n  pcVar7 = section->name;\n  puVar6 = puVar3 + uVar10;\n  if (uVar10 == 0) {\n    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar14,pcVar7);\n    return 0;\n  }\n  pcVar7 = strstr(pcVar7,"debug_rnglists");\n  if (pcVar7 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = puVar3;\nLAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);\n    if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }\n    pcVar7 = section->name;\n    uVar10 = 5;\n    pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\nLAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);\n  }\n  else {\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }\n  return 0;\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "dwarf_vma *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "dwarf_vma dVar5;" type_identifier identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "bfd_boolean bVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "debug_info *pdVar12;" type_identifier (pointer_declarator "*pdVar12" * identifier) ;) (declaration "dwarf_vma *pdVar13;" type_identifier (pointer_declarator "*pdVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "debug_info *pdVar17;" type_identifier (pointer_declarator "*pdVar17" * identifier) ;) (declaration "dwarf_section *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "dwarf_section *section_1;" type_identifier (pointer_declarator "*section_1" * identifier) ;) (declaration "dwarf_section *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "code *pcVar19;" type_identifier (pointer_declarator "*pcVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "uchar *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "dwarf_section *section_00;" type_identifier (pointer_declarator "*section_00" * identifier) ;) (declaration "uchar *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "elf_vma eVar25;" type_identifier identifier ;) (declaration "void *in_stack_ffffffa4;" primitive_type (pointer_declarator "*in_stack_ffffffa4" * identifier) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "uchar *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "uchar *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "uint local_28;" type_identifier identifier ;) (expression_statement "uVar10 = (uint)section->size;" (assignment_expression "uVar10 = (uint)section->size" identifier = (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "puVar3 = section->start;" (assignment_expression "puVar3 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "uVar20 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar20 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar7 = section->name;" (assignment_expression "pcVar7 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "puVar6 = puVar3 + uVar10;" (assignment_expression "puVar6 = puVar3 + uVar10" identifier = (binary_expression "puVar3 + uVar10" identifier + identifier)) ;) (if_statement "if (uVar10 == 0) {\n    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar14,pcVar7);\n    return 0;\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar14,pcVar7);\n    return 0;\n  }" { (expression_statement "pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nThe %s section is empty.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nThe %s section is empty.\n",5)" identifier (argument_list "(0,"\nThe %s section is empty.\n",5)" ( number_literal , (string_literal ""\nThe %s section is empty.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar14,pcVar7);" (call_expression "printf(pcVar14,pcVar7)" identifier (argument_list "(pcVar14,pcVar7)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar7 = strstr(pcVar7,"debug_rnglists");" (assignment_expression "pcVar7 = strstr(pcVar7,"debug_rnglists")" identifier = (call_expression "strstr(pcVar7,"debug_rnglists")" identifier (argument_list "(pcVar7,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = puVar3;\nLAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);\n    if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }\n    pcVar7 = section->name;\n    uVar10 = 5;\n    pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\nLAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);\n  }\n  else {\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_28 = 0;\n    local_38 = puVar3;\nLAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);\n    if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }\n    pcVar7 = section->name;\n    uVar10 = 5;\n    pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\nLAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_38 = puVar3;" (assignment_expression "local_38 = puVar3" identifier = identifier) ;) (labeled_statement "LAB_00032b1b:\n    uVar10 = load_debug_info(in_stack_ffffffa4);" statement_identifier : (expression_statement "uVar10 = load_debug_info(in_stack_ffffffa4);" (assignment_expression "uVar10 = load_debug_info(in_stack_ffffffa4)" identifier = (call_expression "load_debug_info(in_stack_ffffffa4)" identifier (argument_list "(in_stack_ffffffa4)" ( identifier )))) ;)) (if_statement "if (uVar10 != 0) {\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }\n      pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar7);\n      return 1;\n    }" { (if_statement "if (num_debug_info_entries != 0) {\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }" if (parenthesized_expression "(num_debug_info_entries != 0)" ( (binary_expression "num_debug_info_entries != 0" identifier != number_literal) )) (compound_statement "{\n        puVar11 = &debug_information->num_range_lists;\n        __nmemb = 0;\n        do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);\n        if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }\n      }" { (expression_statement "puVar11 = &debug_information->num_range_lists;" (assignment_expression "puVar11 = &debug_information->num_range_lists" identifier = (pointer_expression "&debug_information->num_range_lists" & (field_expression "debug_information->num_range_lists" identifier -> field_identifier))) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        } while (puVar11 != &debug_information[num_debug_info_entries].num_range_lists);" do (compound_statement "{\n          uVar10 = *puVar11;\n          puVar11 = puVar11 + 0x14;\n          __nmemb = uVar10 + __nmemb;\n        }" { (expression_statement "uVar10 = *puVar11;" (assignment_expression "uVar10 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar11 = puVar11 + 0x14;" (assignment_expression "puVar11 = puVar11 + 0x14" identifier = (binary_expression "puVar11 + 0x14" identifier + number_literal)) ;) (expression_statement "__nmemb = uVar10 + __nmemb;" (assignment_expression "__nmemb = uVar10 + __nmemb" identifier = (binary_expression "uVar10 + __nmemb" identifier + identifier)) ;) }) while (parenthesized_expression "(puVar11 != &debug_information[num_debug_info_entries].num_range_lists)" ( (binary_expression "puVar11 != &debug_information[num_debug_info_entries].num_range_lists" identifier != (pointer_expression "&debug_information[num_debug_info_entries].num_range_lists" & (field_expression "debug_information[num_debug_info_entries].num_range_lists" (subscript_expression "debug_information[num_debug_info_entries]" identifier [ identifier ]) . field_identifier))) )) ;) (if_statement "if (__nmemb != 0) {\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }" if (parenthesized_expression "(__nmemb != 0)" ( (binary_expression "__nmemb != 0" identifier != number_literal) )) (compound_statement "{\n          puVar11 = (uint *)xmalloc(__nmemb * 0xc);\n          if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }\n          qsort(puVar11,__nmemb,0xc,range_entry_compar);\n          if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }\n          introduce(section_00,(bfd_boolean)&section->filename,section_1);\n          pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar14);\n          pcVar19 = display_debug_ranges_list;\n          if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }\n          sVar22 = 0;\n          puVar21 = puVar11;\n          local_34 = puVar3;\n          do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(puVar11);\n          return 1;\n        }" { (expression_statement "puVar11 = (uint *)xmalloc(__nmemb * 0xc);" (assignment_expression "puVar11 = (uint *)xmalloc(__nmemb * 0xc)" identifier = (cast_expression "(uint *)xmalloc(__nmemb * 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(__nmemb * 0xc)" identifier (argument_list "(__nmemb * 0xc)" ( (binary_expression "__nmemb * 0xc" identifier * number_literal) ))))) ;) (if_statement "if (num_debug_info_entries != 0) {\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }" if (parenthesized_expression "(num_debug_info_entries != 0)" ( (binary_expression "num_debug_info_entries != 0" identifier != number_literal) )) (compound_statement "{\n            pdVar12 = debug_information + num_debug_info_entries;\n            pdVar17 = debug_information;\n            puVar21 = puVar11;\n            do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);\n          }" { (expression_statement "pdVar12 = debug_information + num_debug_info_entries;" (assignment_expression "pdVar12 = debug_information + num_debug_info_entries" identifier = (binary_expression "debug_information + num_debug_info_entries" identifier + identifier)) ;) (expression_statement "pdVar17 = debug_information;" (assignment_expression "pdVar17 = debug_information" identifier = identifier) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) (do_statement "do {\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            } while (pdVar12 != pdVar17);" do (compound_statement "{\n              uVar10 = pdVar17->num_range_lists;\n              if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }\n              pdVar17 = pdVar17 + 1;\n            }" { (expression_statement "uVar10 = pdVar17->num_range_lists;" (assignment_expression "uVar10 = pdVar17->num_range_lists" identifier = (field_expression "pdVar17->num_range_lists" identifier -> field_identifier)) ;) (if_statement "if (uVar10 != 0) {\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n                pdVar13 = pdVar17->range_lists;\n                pdVar2 = pdVar13 + uVar10;\n                puVar18 = puVar21;\n                do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);\n                puVar21 = puVar21 + uVar10 * 3;\n              }" { (expression_statement "pdVar13 = pdVar17->range_lists;" (assignment_expression "pdVar13 = pdVar17->range_lists" identifier = (field_expression "pdVar17->range_lists" identifier -> field_identifier)) ;) (expression_statement "pdVar2 = pdVar13 + uVar10;" (assignment_expression "pdVar2 = pdVar13 + uVar10" identifier = (binary_expression "pdVar13 + uVar10" identifier + identifier)) ;) (expression_statement "puVar18 = puVar21;" (assignment_expression "puVar18 = puVar21" identifier = identifier) ;) (do_statement "do {\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                } while (pdVar13 != pdVar2);" do (compound_statement "{\n                  dVar5 = *pdVar13;\n                  uVar20 = *(uint *)((int)pdVar13 + 4);\n                  pdVar13 = pdVar13 + 1;\n                  puVar18[2] = (uint)pdVar17;\n                  *puVar18 = (uint)dVar5;\n                  puVar18[1] = uVar20;\n                  puVar18 = puVar18 + 3;\n                }" { (expression_statement "dVar5 = *pdVar13;" (assignment_expression "dVar5 = *pdVar13" identifier = (pointer_expression "*pdVar13" * identifier)) ;) (expression_statement "uVar20 = *(uint *)((int)pdVar13 + 4);" (assignment_expression "uVar20 = *(uint *)((int)pdVar13 + 4)" identifier = (pointer_expression "*(uint *)((int)pdVar13 + 4)" * (cast_expression "(uint *)((int)pdVar13 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar13 + 4)" ( (binary_expression "(int)pdVar13 + 4" (cast_expression "(int)pdVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pdVar13 = pdVar13 + 1;" (assignment_expression "pdVar13 = pdVar13 + 1" identifier = (binary_expression "pdVar13 + 1" identifier + number_literal)) ;) (expression_statement "puVar18[2] = (uint)pdVar17;" (assignment_expression "puVar18[2] = (uint)pdVar17" (subscript_expression "puVar18[2]" identifier [ number_literal ]) = (cast_expression "(uint)pdVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar18 = (uint)dVar5;" (assignment_expression "*puVar18 = (uint)dVar5" (pointer_expression "*puVar18" * identifier) = (cast_expression "(uint)dVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar18[1] = uVar20;" (assignment_expression "puVar18[1] = uVar20" (subscript_expression "puVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar18 = puVar18 + 3;" (assignment_expression "puVar18 = puVar18 + 3" identifier = (binary_expression "puVar18 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar13 != pdVar2)" ( (binary_expression "pdVar13 != pdVar2" identifier != identifier) )) ;) (expression_statement "puVar21 = puVar21 + uVar10 * 3;" (assignment_expression "puVar21 = puVar21 + uVar10 * 3" identifier = (binary_expression "puVar21 + uVar10 * 3" identifier + (binary_expression "uVar10 * 3" identifier * number_literal))) ;) })) (expression_statement "pdVar17 = pdVar17 + 1;" (assignment_expression "pdVar17 = pdVar17 + 1" identifier = (binary_expression "pdVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar12 != pdVar17)" ( (binary_expression "pdVar12 != pdVar17" identifier != identifier) )) ;) })) (expression_statement "qsort(puVar11,__nmemb,0xc,range_entry_compar);" (call_expression "qsort(puVar11,__nmemb,0xc,range_entry_compar)" identifier (argument_list "(puVar11,__nmemb,0xc,range_entry_compar)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (dwarf_check == 0) {\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }\n          else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }" if (parenthesized_expression "(dwarf_check == 0)" ( (binary_expression "dwarf_check == 0" identifier == number_literal) )) (compound_statement "{\n            section_00 = (dwarf_section *)section->name;\n            section_1 = extraout_ECX;\n          }" { (expression_statement "section_00 = (dwarf_section *)section->name;" (assignment_expression "section_00 = (dwarf_section *)section->name" identifier = (cast_expression "(dwarf_section *)section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->name" identifier -> field_identifier))) ;) (expression_statement "section_1 = extraout_ECX;" (assignment_expression "section_1 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }" else (compound_statement "{\n            uVar10 = *puVar11;\n            section_00 = (dwarf_section *)section->name;\n            section_1 = (dwarf_section *)(uVar10 | puVar11[1]);\n            if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }\n          }" { (expression_statement "uVar10 = *puVar11;" (assignment_expression "uVar10 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "section_00 = (dwarf_section *)section->name;" (assignment_expression "section_00 = (dwarf_section *)section->name" identifier = (cast_expression "(dwarf_section *)section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->name" identifier -> field_identifier))) ;) (expression_statement "section_1 = (dwarf_section *)(uVar10 | puVar11[1]);" (assignment_expression "section_1 = (dwarf_section *)(uVar10 | puVar11[1])" identifier = (cast_expression "(dwarf_section *)(uVar10 | puVar11[1])" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 | puVar11[1])" ( (binary_expression "uVar10 | puVar11[1]" identifier | (subscript_expression "puVar11[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (section_1 != (dwarf_section *)0x0) {\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }" if (parenthesized_expression "(section_1 != (dwarf_section *)0x0)" ( (binary_expression "section_1 != (dwarf_section *)0x0" identifier != (cast_expression "(dwarf_section *)0x0" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(pcVar14,section_00,uVar10);\n              section_00 = (dwarf_section *)section->name;\n              section_1 = extraout_ECX_00;\n            }" { (expression_statement "pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier (argument_list "(0,"Range lists in %s section start at 0x%lx\n",5)" ( number_literal , (string_literal ""Range lists in %s section start at 0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar14,section_00,uVar10);" (call_expression "warn(pcVar14,section_00,uVar10)" identifier (argument_list "(pcVar14,section_00,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "section_00 = (dwarf_section *)section->name;" (assignment_expression "section_00 = (dwarf_section *)section->name" identifier = (cast_expression "(dwarf_section *)section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->name" identifier -> field_identifier))) ;) (expression_statement "section_1 = extraout_ECX_00;" (assignment_expression "section_1 = extraout_ECX_00" identifier = identifier) ;) })) }))) (expression_statement "introduce(section_00,(bfd_boolean)&section->filename,section_1);" (call_expression "introduce(section_00,(bfd_boolean)&section->filename,section_1)" identifier (argument_list "(section_00,(bfd_boolean)&section->filename,section_1)" ( identifier , (binary_expression "(bfd_boolean)&section->filename" (parenthesized_expression "(bfd_boolean)" ( identifier )) & (field_expression "section->filename" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"    Offset   Begin    End\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"    Offset   Begin    End\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"    Offset   Begin    End\n",5)" identifier (argument_list "(0,"    Offset   Begin    End\n",5)" ( number_literal , (string_literal ""    Offset   Begin    End\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar14);" (call_expression "printf(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier ))) ;) (expression_statement "pcVar19 = display_debug_ranges_list;" (assignment_expression "pcVar19 = display_debug_ranges_list" identifier = identifier) ;) (if_statement "if (pcVar7 != (char *)0x0) {\n            pcVar19 = display_debug_rnglists_list;\n          }" if (parenthesized_expression "(pcVar7 != (char *)0x0)" ( (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar19 = display_debug_rnglists_list;\n          }" { (expression_statement "pcVar19 = display_debug_rnglists_list;" (assignment_expression "pcVar19 = display_debug_rnglists_list" identifier = identifier) ;) })) (expression_statement "sVar22 = 0;" (assignment_expression "sVar22 = 0" identifier = number_literal) ;) (expression_statement "puVar21 = puVar11;" (assignment_expression "puVar21 = puVar11" identifier = identifier) ;) (expression_statement "local_34 = puVar3;" (assignment_expression "local_34 = puVar3" identifier = identifier) ;) (do_statement "do {\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          } while (__nmemb != sVar22);" do (compound_statement "{\n            while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            puVar21 = puVar21 + 3;\n            pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);\n            warn(pcVar14,uVar10,uVar20);\n          }" { (while_statement "while( true ) {\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar10 = local_28;\n              if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }\n              uVar20 = *puVar21;\n              puVar24 = puVar3 + uVar20;\n              if (6 < uVar10 - 2) break;\n              if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              puVar21 = puVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" { (expression_statement "uVar10 = local_28;" (assignment_expression "uVar10 = local_28" identifier = identifier) ;) (if_statement "if (pcVar7 == (char *)0x0) {\n                uVar10 = *(uint *)puVar21[2];\n              }" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar10 = *(uint *)puVar21[2];\n              }" { (expression_statement "uVar10 = *(uint *)puVar21[2];" (assignment_expression "uVar10 = *(uint *)puVar21[2]" identifier = (pointer_expression "*(uint *)puVar21[2]" * (cast_expression "(uint *)puVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ])))) ;) })) (expression_statement "uVar20 = *puVar21;" (assignment_expression "uVar20 = *puVar21" identifier = (pointer_expression "*puVar21" * identifier)) ;) (expression_statement "puVar24 = puVar3 + uVar20;" (assignment_expression "puVar24 = puVar3 + uVar20" identifier = (binary_expression "puVar3 + uVar20" identifier + identifier)) ;) (if_statement "if (6 < uVar10 - 2) break;" if (parenthesized_expression "(6 < uVar10 - 2)" ( (binary_expression "6 < uVar10 - 2" number_literal < (binary_expression "uVar10 - 2" identifier - number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((puVar24 < puVar3) || (puVar6 <= puVar24)) {\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }\n              else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }" if (parenthesized_expression "((puVar24 < puVar3) || (puVar6 <= puVar24))" ( (binary_expression "(puVar24 < puVar3) || (puVar6 <= puVar24)" (parenthesized_expression "(puVar24 < puVar3)" ( (binary_expression "puVar24 < puVar3" identifier < identifier) )) || (parenthesized_expression "(puVar6 <= puVar24)" ( (binary_expression "puVar6 <= puVar24" identifier <= identifier) ))) )) (compound_statement "{\n                pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(pcVar14,uVar20,sVar22);\n              }" { (expression_statement "pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier (argument_list "(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" ( number_literal , (string_literal ""Corrupt offset (%#8.8lx) in range entry %u\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar14,uVar20,sVar22);" (call_expression "warn(pcVar14,uVar20,sVar22)" identifier (argument_list "(pcVar14,uVar20,sVar22)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }" else (compound_statement "{\n                uVar8 = ((uint *)puVar21[2])[5];\n                if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }\n                (*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);\n                local_38 = puVar24;\n                local_34 = puVar24;\n              }" { (expression_statement "uVar8 = ((uint *)puVar21[2])[5];" (assignment_expression "uVar8 = ((uint *)puVar21[2])[5]" identifier = (subscript_expression "((uint *)puVar21[2])[5]" (parenthesized_expression "((uint *)puVar21[2])" ( (cast_expression "(uint *)puVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[2]" identifier [ number_literal ])) )) [ number_literal ])) ;) (if_statement "if ((dwarf_check != 0) && (sVar22 != 0)) {\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }" if (parenthesized_expression "((dwarf_check != 0) && (sVar22 != 0))" ( (binary_expression "(dwarf_check != 0) && (sVar22 != 0)" (parenthesized_expression "(dwarf_check != 0)" ( (binary_expression "dwarf_check != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar22 != 0)" ( (binary_expression "sVar22 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                }" { (if_statement "if (local_38 < puVar24) {\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }\n                  else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }" if (parenthesized_expression "(local_38 < puVar24)" ( (binary_expression "local_38 < puVar24" identifier < identifier) )) (compound_statement "{\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }" { (expression_statement "pcVar14 = section->name;" (assignment_expression "pcVar14 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" identifier (argument_list "(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" ( number_literal , (string_literal ""There is a hole [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);" (call_expression "warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14)" identifier (argument_list "(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14)" ( identifier , (binary_expression "(int)local_38 - (int)puVar3" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier ))) ;) }) (else_clause "else if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }" else (if_statement "if (puVar24 < local_38) {\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }" if (parenthesized_expression "(puVar24 < local_38)" ( (binary_expression "puVar24 < local_38" identifier < identifier) )) (compound_statement "{\n                    if (puVar24 == local_34) goto LAB_00032d5f;\n                    pcVar14 = section->name;\n                    pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);\n                    warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);\n                  }" { (if_statement "if (puVar24 == local_34) goto LAB_00032d5f;" if (parenthesized_expression "(puVar24 == local_34)" ( (binary_expression "puVar24 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00032d5f;" goto statement_identifier ;)) (expression_statement "pcVar14 = section->name;" (assignment_expression "pcVar14 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" identifier (argument_list "(0,\n                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"\n                                                ,5)" ( number_literal , (string_literal ""There is an overlap [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14);" (call_expression "warn(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14)" identifier (argument_list "(pcVar15,(int)local_38 - (int)puVar3,uVar20,pcVar14)" ( identifier , (binary_expression "(int)local_38 - (int)puVar3" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8);" (call_expression "(*pcVar19)(puVar24,puVar6,uVar10,uVar20,uVar8)" (parenthesized_expression "(*pcVar19)" ( (pointer_expression "*pcVar19" * identifier) )) (argument_list "(puVar24,puVar6,uVar10,uVar20,uVar8)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_38 = puVar24;" (assignment_expression "local_38 = puVar24" identifier = identifier) ;) (expression_statement "local_34 = puVar24;" (assignment_expression "local_34 = puVar24" identifier = identifier) ;) }))) (labeled_statement "LAB_00032d5f:\n              sVar22 = sVar22 + 1;" statement_identifier : (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;)) (expression_statement "puVar21 = puVar21 + 3;" (assignment_expression "puVar21 = puVar21 + 3" identifier = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) (if_statement "if (__nmemb == sVar22) goto LAB_00032e7c;" if (parenthesized_expression "(__nmemb == sVar22)" ( (binary_expression "__nmemb == sVar22" identifier == identifier) )) (goto_statement "goto LAB_00032e7c;" goto statement_identifier ;)) })) (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;) (expression_statement "puVar21 = puVar21 + 3;" (assignment_expression "puVar21 = puVar21 + 3" identifier = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5)" identifier (argument_list "(0,\n                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"\n                                        ,5)" ( number_literal , (string_literal ""Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar14,uVar10,uVar20);" (call_expression "warn(pcVar14,uVar10,uVar20)" identifier (argument_list "(pcVar14,uVar10,uVar20)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__nmemb != sVar22)" ( (binary_expression "__nmemb != sVar22" identifier != identifier) )) ;) (labeled_statement "LAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);" statement_identifier : (expression_statement "putc(10,*(FILE **)PTR_stdout_00072fdc);" (call_expression "putc(10,*(FILE **)PTR_stdout_00072fdc)" identifier (argument_list "(10,*(FILE **)PTR_stdout_00072fdc)" ( number_literal , (pointer_expression "*(FILE **)PTR_stdout_00072fdc" * (cast_expression "(FILE **)PTR_stdout_00072fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;)) (expression_statement "free(puVar11);" (call_expression "free(puVar11)" identifier (argument_list "(puVar11)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier (argument_list "(0,"No range lists in .debug_info section.\n",5)" ( number_literal , (string_literal ""No range lists in .debug_info section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar7 = section->name;" (assignment_expression "pcVar7 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 5;" (assignment_expression "uVar10 = 5" identifier = number_literal) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5)" identifier (argument_list "(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5)" ( number_literal , (string_literal ""Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (labeled_statement "LAB_00032fe2:\n    warn(pcVar14,pcVar7,uVar10);" statement_identifier : (expression_statement "warn(pcVar14,pcVar7,uVar10);" (call_expression "warn(pcVar14,pcVar7,uVar10)" identifier (argument_list "(pcVar14,pcVar7,uVar10)" ( identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }" else (compound_statement "{\n    puVar24 = puVar3 + 4;\n    if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }\n    puVar23 = puVar24 + 2;\n    if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;\n    pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);\n    warn(pcVar7);\n  }" { (expression_statement "puVar24 = puVar3 + 4;" (assignment_expression "puVar24 = puVar3 + 4" identifier = (binary_expression "puVar3 + 4" identifier + number_literal)) ;) (if_statement "if (puVar24 < puVar6) {\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }" if (parenthesized_expression "(puVar24 < puVar6)" ( (binary_expression "puVar24 < puVar6" identifier < identifier) )) (compound_statement "{\n      uVar8 = 4;\nLAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);\n      local_4c = (undefined4)eVar25;\n      if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }\nLAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);\n      puVar24 = puVar23;\n      if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }\n    }" { (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0003296f:\n      eVar25 = (*byte_get)(puVar3,uVar8);" statement_identifier : (expression_statement "eVar25 = (*byte_get)(puVar3,uVar8);" (assignment_expression "eVar25 = (*byte_get)(puVar3,uVar8)" identifier = (call_expression "(*byte_get)(puVar3,uVar8)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar3,uVar8)" ( identifier , identifier )))) ;)) (expression_statement "local_4c = (undefined4)eVar25;" (assignment_expression "local_4c = (undefined4)eVar25" identifier = (cast_expression "(undefined4)eVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (eVar25 == 0xffffffff) {\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }\n      else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }" if (parenthesized_expression "(eVar25 == 0xffffffff)" ( (binary_expression "eVar25 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar23 = puVar3 + 0xc;\n        if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }\n        eVar25 = (*byte_get)(puVar24,iVar16);\n        local_4c = (undefined4)eVar25;\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        lVar4 = eVar25 + 0xc;\n        iVar16 = 8;\n      }" { (expression_statement "puVar23 = puVar3 + 0xc;" (assignment_expression "puVar23 = puVar3 + 0xc" identifier = (binary_expression "puVar3 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar23 < puVar6) {\n          iVar16 = 8;\n        }\n        else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }" if (parenthesized_expression "(puVar23 < puVar6)" ( (binary_expression "puVar23 < puVar6" identifier < identifier) )) (compound_statement "{\n          iVar16 = 8;\n        }" { (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) }) (else_clause "else {\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }" else (compound_statement "{\n          if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar16 = uVar10 - 4;\n        }" { (if_statement "if ((puVar6 <= puVar24) || (7 < uVar10 - 5)) {\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }" if (parenthesized_expression "((puVar6 <= puVar24) || (7 < uVar10 - 5))" ( (binary_expression "(puVar6 <= puVar24) || (7 < uVar10 - 5)" (parenthesized_expression "(puVar6 <= puVar24)" ( (binary_expression "puVar6 <= puVar24" identifier <= identifier) )) || (parenthesized_expression "(7 < uVar10 - 5)" ( (binary_expression "7 < uVar10 - 5" number_literal < (binary_expression "uVar10 - 5" identifier - number_literal)) ))) )) (compound_statement "{\n            iVar16 = 8;\n            local_4c = 0;\n            uVar10 = (uint)section->size;\n            uVar20 = *(uint *)((int)&section->size + 4);\n            lVar4 = 0xc;\n            goto LAB_000329b6;\n          }" { (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (uint)section->size;" (assignment_expression "uVar10 = (uint)section->size" identifier = (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "uVar20 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar20 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "lVar4 = 0xc;" (assignment_expression "lVar4 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_000329b6;" goto statement_identifier ;) })) (expression_statement "iVar16 = uVar10 - 4;" (assignment_expression "iVar16 = uVar10 - 4" identifier = (binary_expression "uVar10 - 4" identifier - number_literal)) ;) }))) (expression_statement "eVar25 = (*byte_get)(puVar24,iVar16);" (assignment_expression "eVar25 = (*byte_get)(puVar24,iVar16)" identifier = (call_expression "(*byte_get)(puVar24,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar24,iVar16)" ( identifier , identifier )))) ;) (expression_statement "local_4c = (undefined4)eVar25;" (assignment_expression "local_4c = (undefined4)eVar25" identifier = (cast_expression "(undefined4)eVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = (uint)section->size;" (assignment_expression "uVar10 = (uint)section->size" identifier = (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "uVar20 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar20 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "lVar4 = eVar25 + 0xc;" (assignment_expression "lVar4 = eVar25 + 0xc" identifier = (binary_expression "eVar25 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }" else (compound_statement "{\n        uVar10 = (uint)section->size;\n        uVar20 = *(uint *)((int)&section->size + 4);\n        iVar16 = 4;\n        lVar4 = eVar25 + 4;\n        puVar23 = puVar24;\n      }" { (expression_statement "uVar10 = (uint)section->size;" (assignment_expression "uVar10 = (uint)section->size" identifier = (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "uVar20 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar20 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) (expression_statement "lVar4 = eVar25 + 4;" (assignment_expression "lVar4 = eVar25 + 4" identifier = (binary_expression "eVar25 + 4" identifier + number_literal)) ;) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" identifier = identifier) ;) }))) (labeled_statement "LAB_000329b6:\n      uVar8 = (uint)((ulonglong)lVar4 >> 0x20);" statement_identifier : (expression_statement "uVar8 = (uint)((ulonglong)lVar4 >> 0x20);" (assignment_expression "uVar8 = (uint)((ulonglong)lVar4 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar4 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) (if_statement "if (uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)) {\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }" if (parenthesized_expression "(uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4))" ( (binary_expression "uVar20 < uVar8 || uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)" (binary_expression "uVar20 < uVar8" identifier < identifier) || (binary_expression "uVar20 - uVar8 < (uint)(uVar10 < (uint)lVar4)" (binary_expression "uVar20 - uVar8" identifier - identifier) < (call_expression "(uint)(uVar10 < (uint)lVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < (uint)lVar4)" ( (binary_expression "uVar10 < (uint)lVar4" identifier < (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\nLAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));\n        if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00032a32:\n        bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));" statement_identifier : (expression_statement "bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)));" (assignment_expression "bVar9 = reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)))" identifier = (call_expression "reloc_at(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)))" identifier (argument_list "(section,ZEXT48(puVar24 + (-iVar16 - (int)section->start)))" ( identifier , (call_expression "ZEXT48(puVar24 + (-iVar16 - (int)section->start))" identifier (argument_list "(puVar24 + (-iVar16 - (int)section->start))" ( (binary_expression "puVar24 + (-iVar16 - (int)section->start)" identifier + (parenthesized_expression "(-iVar16 - (int)section->start)" ( (binary_expression "-iVar16 - (int)section->start" (unary_expression "-iVar16" - identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier))) ))) ))) )))) ;)) (if_statement "if (bVar9 == 0) {\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);\n          warn(pcVar7,local_4c);\n          return 0;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5)" identifier (argument_list "(0,\n                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                                     ,5)" ( number_literal , (string_literal ""The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar7,local_4c);" (call_expression "warn(pcVar7,local_4c)" identifier (argument_list "(pcVar7,local_4c)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }" else (compound_statement "{\n      if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;\n      iVar16 = 4;\n      local_4c = 0;\n      if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;\n    }" { (if_statement "if ((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)) goto LAB_0003296f;" if (parenthesized_expression "((puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8))" ( (binary_expression "(puVar3 < puVar6) && (uVar8 = uVar10, uVar10 - 1 < 8)" (parenthesized_expression "(puVar3 < puVar6)" ( (binary_expression "puVar3 < puVar6" identifier < identifier) )) && (parenthesized_expression "(uVar8 = uVar10, uVar10 - 1 < 8)" ( (comma_expression "uVar8 = uVar10, uVar10 - 1 < 8" (assignment_expression "uVar8 = uVar10" identifier = identifier) , (binary_expression "uVar10 - 1 < 8" (binary_expression "uVar10 - 1" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_0003296f;" goto statement_identifier ;)) (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (if_statement "if (uVar20 < (uVar10 < 4)) goto LAB_00032a32;" if (parenthesized_expression "(uVar20 < (uVar10 < 4))" ( (binary_expression "uVar20 < (uVar10 < 4)" identifier < (parenthesized_expression "(uVar10 < 4)" ( (binary_expression "uVar10 < 4" identifier < number_literal) ))) )) (goto_statement "goto LAB_00032a32;" goto statement_identifier ;)) }))) (expression_statement "puVar23 = puVar24 + 2;" (assignment_expression "puVar23 = puVar24 + 2" identifier = (binary_expression "puVar24 + 2" identifier + number_literal)) ;) (if_statement "if (puVar23 < puVar6) {\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;" if (parenthesized_expression "(puVar23 < puVar6)" ( (binary_expression "puVar23 < puVar6" identifier < identifier) )) (compound_statement "{\n      iVar16 = 2;\nLAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);\n      if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }\n    }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (labeled_statement "LAB_00032a8d:\n      eVar25 = (*byte_get)(puVar24,iVar16);" statement_identifier : (expression_statement "eVar25 = (*byte_get)(puVar24,iVar16);" (assignment_expression "eVar25 = (*byte_get)(puVar24,iVar16)" identifier = (call_expression "(*byte_get)(puVar24,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar24,iVar16)" ( identifier , identifier )))) ;)) (if_statement "if (eVar25 == 5) {\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }" if (parenthesized_expression "(eVar25 == 5)" ( (binary_expression "eVar25 == 5" identifier == number_literal) )) (compound_statement "{\n        puVar1 = puVar24 + 3;\n        if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;\n        local_28 = 0;\n        if (puVar6 <= puVar24 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar16 = 1;\nLAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);\n        if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        pcVar7 = section->name;\n        pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar10 = (uint)(byte)eVar25;\n        goto LAB_00032fe2;\n      }" { (expression_statement "puVar1 = puVar24 + 3;" (assignment_expression "puVar1 = puVar24 + 3" identifier = (binary_expression "puVar24 + 3" identifier + number_literal)) ;) (if_statement "if (puVar1 < puVar6) {\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" if (parenthesized_expression "(puVar1 < puVar6)" ( (binary_expression "puVar1 < puVar6" identifier < identifier) )) (compound_statement "{\n          iVar16 = 1;\nLAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);\n          local_28 = (uint)(byte)eVar25;\n          if (puVar24 + 4 < puVar6) goto LAB_00032df4;\n          if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = puVar24 + 8;\n          if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar16 = 4;\nLAB_00032b06:\n          local_38 = puVar24 + 8;\n          eVar25 = (*byte_get)(puVar24 + 4,iVar16);\n          if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00032abc:\n          eVar25 = (*byte_get)(puVar23,iVar16);" statement_identifier : (expression_statement "eVar25 = (*byte_get)(puVar23,iVar16);" (assignment_expression "eVar25 = (*byte_get)(puVar23,iVar16)" identifier = (call_expression "(*byte_get)(puVar23,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar23,iVar16)" ( identifier , identifier )))) ;)) (expression_statement "local_28 = (uint)(byte)eVar25;" (assignment_expression "local_28 = (uint)(byte)eVar25" identifier = (cast_expression "(uint)(byte)eVar25" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)eVar25" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (if_statement "if (puVar24 + 4 < puVar6) goto LAB_00032df4;" if (parenthesized_expression "(puVar24 + 4 < puVar6)" ( (binary_expression "puVar24 + 4 < puVar6" (binary_expression "puVar24 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00032df4;" goto statement_identifier ;)) (if_statement "if ((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))\n          goto LAB_00032df9;" if (parenthesized_expression "((puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8))" ( (binary_expression "(puVar1 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8)" (parenthesized_expression "(puVar1 < puVar6)" ( (binary_expression "puVar1 < puVar6" identifier < identifier) )) && (parenthesized_expression "(iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8)" ( (comma_expression "iVar16 = (int)puVar6 - (int)puVar1, iVar16 - 1U < 8" (assignment_expression "iVar16 = (int)puVar6 - (int)puVar1" identifier = (binary_expression "(int)puVar6 - (int)puVar1" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032df9;" goto statement_identifier ;)) (labeled_statement "LAB_00032af4:\n          local_38 = puVar24 + 8;" statement_identifier : (expression_statement "local_38 = puVar24 + 8;" (assignment_expression "local_38 = puVar24 + 8" identifier = (binary_expression "puVar24 + 8" identifier + number_literal)) ;)) (if_statement "if (puVar6 <= puVar24 + 8) goto LAB_00032b1b;" if (parenthesized_expression "(puVar6 <= puVar24 + 8)" ( (binary_expression "puVar6 <= puVar24 + 8" identifier <= (binary_expression "puVar24 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (labeled_statement "LAB_00032b01:\n          iVar16 = 4;" statement_identifier : (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;)) (labeled_statement "LAB_00032b06:\n          local_38 = puVar24 + 8;" statement_identifier : (expression_statement "local_38 = puVar24 + 8;" (assignment_expression "local_38 = puVar24 + 8" identifier = (binary_expression "puVar24 + 8" identifier + number_literal)) ;)) (expression_statement "eVar25 = (*byte_get)(puVar24 + 4,iVar16);" (assignment_expression "eVar25 = (*byte_get)(puVar24 + 4,iVar16)" identifier = (call_expression "(*byte_get)(puVar24 + 4,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar24 + 4,iVar16)" ( (binary_expression "puVar24 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if (eVar25 != 0) {\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }" if (parenthesized_expression "(eVar25 != 0)" ( (binary_expression "eVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar7 = section->name;\n            pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);\n            warn(pcVar14,pcVar7,(undefined4)eVar25);\n            return 0;\n          }" { (expression_statement "pcVar7 = section->name;" (assignment_expression "pcVar7 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5)" identifier (argument_list "(0,\n                                        "The %s section contains unsupported offset entry count: %u.\n"\n                                        ,5)" ( number_literal , (string_literal ""The %s section contains unsupported offset entry count: %u.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar14,pcVar7,(undefined4)eVar25);" (call_expression "warn(pcVar14,pcVar7,(undefined4)eVar25)" identifier (argument_list "(pcVar14,pcVar7,(undefined4)eVar25)" ( identifier , identifier , (cast_expression "(undefined4)eVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier) ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;) })) (if_statement "if ((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))\n        goto LAB_00032abc;" if (parenthesized_expression "((puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8))" ( (binary_expression "(puVar23 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8)" (parenthesized_expression "(puVar23 < puVar6)" ( (binary_expression "puVar23 < puVar6" identifier < identifier) )) && (parenthesized_expression "(iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8)" ( (comma_expression "iVar16 = (int)puVar6 - (int)puVar23, iVar16 - 1U < 8" (assignment_expression "iVar16 = (int)puVar6 - (int)puVar23" identifier = (binary_expression "(int)puVar6 - (int)puVar23" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032abc;" goto statement_identifier ;)) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (puVar6 <= puVar24 + 4) goto LAB_00032af4;" if (parenthesized_expression "(puVar6 <= puVar24 + 4)" ( (binary_expression "puVar6 <= puVar24 + 4" identifier <= (binary_expression "puVar24 + 4" identifier + number_literal)) )) (goto_statement "goto LAB_00032af4;" goto statement_identifier ;)) (labeled_statement "LAB_00032df4:\n        iVar16 = 1;" statement_identifier : (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00032df9:\n        eVar25 = (*byte_get)(puVar1,iVar16);" statement_identifier : (expression_statement "eVar25 = (*byte_get)(puVar1,iVar16);" (assignment_expression "eVar25 = (*byte_get)(puVar1,iVar16)" identifier = (call_expression "(*byte_get)(puVar1,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar1,iVar16)" ( identifier , identifier )))) ;)) (if_statement "if (eVar25 == 0) {\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" if (parenthesized_expression "(eVar25 == 0)" ( (binary_expression "eVar25 == 0" identifier == number_literal) )) (compound_statement "{\n          local_38 = puVar24 + 8;\n          if (local_38 < puVar6) goto LAB_00032b01;\n          if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" { (expression_statement "local_38 = puVar24 + 8;" (assignment_expression "local_38 = puVar24 + 8" identifier = (binary_expression "puVar24 + 8" identifier + number_literal)) ;) (if_statement "if (local_38 < puVar6) goto LAB_00032b01;" if (parenthesized_expression "(local_38 < puVar6)" ( (binary_expression "local_38 < puVar6" identifier < identifier) )) (goto_statement "goto LAB_00032b01;" goto statement_identifier ;)) (if_statement "if ((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)) goto LAB_00032b1b;" if (parenthesized_expression "((puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U))" ( (binary_expression "(puVar6 <= puVar24 + 4) ||\n             (iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)" (parenthesized_expression "(puVar6 <= puVar24 + 4)" ( (binary_expression "puVar6 <= puVar24 + 4" identifier <= (binary_expression "puVar24 + 4" identifier + number_literal)) )) || (parenthesized_expression "(iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U)" ( (comma_expression "iVar16 = (int)puVar6 - (int)(puVar24 + 4), 7 < iVar16 - 1U" (assignment_expression "iVar16 = (int)puVar6 - (int)(puVar24 + 4)" identifier = (binary_expression "(int)puVar6 - (int)(puVar24 + 4)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(puVar24 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar24 + 4)" ( (binary_expression "puVar24 + 4" identifier + number_literal) ))))) , (binary_expression "7 < iVar16 - 1U" number_literal < (binary_expression "iVar16 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (goto_statement "goto LAB_00032b06;" goto statement_identifier ;) })) (expression_statement "pcVar7 = section->name;" (assignment_expression "pcVar7 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5)" identifier (argument_list "(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5)" ( number_literal , (string_literal ""The %s section contains unsupported segment selector size: %d.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar10 = (uint)(byte)eVar25;" (assignment_expression "uVar10 = (uint)(byte)eVar25" identifier = (cast_expression "(uint)(byte)eVar25" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)eVar25" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (goto_statement "goto LAB_00032fe2;" goto statement_identifier ;) })) }) (else_clause "else if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;" else (if_statement "if ((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))\n    goto LAB_00032a8d;" if (parenthesized_expression "((puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8))" ( (binary_expression "(puVar24 < puVar6) && (iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8)" (parenthesized_expression "(puVar24 < puVar6)" ( (binary_expression "puVar24 < puVar6" identifier < identifier) )) && (parenthesized_expression "(iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8)" ( (comma_expression "iVar16 = (int)puVar6 - (int)puVar24, iVar16 - 1U < 8" (assignment_expression "iVar16 = (int)puVar6 - (int)puVar24" identifier = (binary_expression "(int)puVar6 - (int)puVar24" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032a8d;" goto statement_identifier ;)))) (expression_statement "pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5)" identifier = (cast_expression "(char *)dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5)" identifier (argument_list "(0,\n                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",\n                               5)" ( number_literal , (string_literal ""Only DWARF version 5 debug_rnglists info is currently supported.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar7);" (call_expression "warn(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00032900(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_00032900(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00032900(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "short sVar7;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x10)" identifier = (pointer_expression "*(uint *)(param_1 + 0x10)" * (cast_expression "(uint *)(param_1 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar24 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar9 = *(char **)(param_1 + 8);" (assignment_expression "pcVar9 = *(char **)(param_1 + 8)" identifier = (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = uVar2 + uVar26;" (assignment_expression "uVar8 = uVar2 + uVar26" identifier = (binary_expression "uVar2 + uVar26" identifier + identifier)) ;) (if_statement "if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" if (parenthesized_expression "(uVar26 == 0)" ( (binary_expression "uVar26 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" { (expression_statement "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nThe %s section is empty.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nThe %s section is empty.\n",5)" identifier (argument_list "(0,"\nThe %s section is empty.\n",5)" ( number_literal , (string_literal ""\nThe %s section is empty.\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar15,pcVar9);" (call_expression "printf(pcVar15,pcVar9)" identifier (argument_list "(pcVar15,pcVar9)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar9 = strstr(pcVar9,"debug_rnglists");" (assignment_expression "pcVar9 = strstr(pcVar9,"debug_rnglists")" identifier = (call_expression "strstr(pcVar9,"debug_rnglists")" identifier (argument_list "(pcVar9,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }" { (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_38 = uVar2;" (assignment_expression "local_38 = uVar2" identifier = identifier) ;) (labeled_statement "LAB_00032b1b:\n    iVar17 = FUN_00032500();" statement_identifier : (expression_statement "iVar17 = FUN_00032500();" (assignment_expression "iVar17 = FUN_00032500()" identifier = (call_expression "FUN_00032500()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" { (if_statement "if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" if (parenthesized_expression "(DAT_0007694c != 0)" ( (binary_expression "DAT_0007694c != 0" identifier != number_literal) )) (compound_statement "{\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" { (expression_statement "piVar12 = (int *)(DAT_00076944 + 0x48);" (assignment_expression "piVar12 = (int *)(DAT_00076944 + 0x48)" identifier = (cast_expression "(int *)(DAT_00076944 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00076944 + 0x48)" ( (binary_expression "DAT_00076944 + 0x48" identifier + number_literal) )))) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (do_statement "do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));" do (compound_statement "{\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        }" { (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "piVar12 = piVar12 + 0x14;" (assignment_expression "piVar12 = piVar12 + 0x14" identifier = (binary_expression "piVar12 + 0x14" identifier + number_literal)) ;) (expression_statement "__nmemb = iVar17 + __nmemb;" (assignment_expression "__nmemb = iVar17 + __nmemb" identifier = (binary_expression "iVar17 + __nmemb" identifier + identifier)) ;) }) while (parenthesized_expression "(piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50))" ( (binary_expression "piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" identifier != (cast_expression "(int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" ( (binary_expression "DAT_00076944 + 0x48 + DAT_0007694c * 0x50" (binary_expression "DAT_00076944 + 0x48" identifier + number_literal) + (binary_expression "DAT_0007694c * 0x50" identifier * number_literal)) )))) )) ;) (if_statement "if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" if (parenthesized_expression "(__nmemb != 0)" ( (binary_expression "__nmemb != 0" identifier != number_literal) )) (compound_statement "{\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" { (expression_statement "piVar12 = (int *)xmalloc(__nmemb * 0xc);" (assignment_expression "piVar12 = (int *)xmalloc(__nmemb * 0xc)" identifier = (cast_expression "(int *)xmalloc(__nmemb * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(__nmemb * 0xc)" identifier (argument_list "(__nmemb * 0xc)" ( (binary_expression "__nmemb * 0xc" identifier * number_literal) ))))) ;) (if_statement "if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" if (parenthesized_expression "(DAT_0007694c != 0)" ( (binary_expression "DAT_0007694c != 0" identifier != number_literal) )) (compound_statement "{\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" { (expression_statement "iVar13 = DAT_0007694c * 0x50 + DAT_00076944;" (assignment_expression "iVar13 = DAT_0007694c * 0x50 + DAT_00076944" identifier = (binary_expression "DAT_0007694c * 0x50 + DAT_00076944" (binary_expression "DAT_0007694c * 0x50" identifier * number_literal) + identifier)) ;) (expression_statement "iVar17 = DAT_00076944;" (assignment_expression "iVar17 = DAT_00076944" identifier = identifier) ;) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" identifier = identifier) ;) (do_statement "do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);" do (compound_statement "{\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            }" { (expression_statement "iVar3 = *(int *)(iVar17 + 0x48);" (assignment_expression "iVar3 = *(int *)(iVar17 + 0x48)" identifier = (pointer_expression "*(int *)(iVar17 + 0x48)" * (cast_expression "(int *)(iVar17 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x48)" ( (binary_expression "iVar17 + 0x48" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" { (expression_statement "piVar14 = *(int **)(iVar17 + 0x44);" (assignment_expression "piVar14 = *(int **)(iVar17 + 0x44)" identifier = (pointer_expression "*(int **)(iVar17 + 0x44)" * (cast_expression "(int **)(iVar17 + 0x44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x44)" ( (binary_expression "iVar17 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "piVar1 = piVar14 + iVar3 * 2;" (assignment_expression "piVar1 = piVar14 + iVar3 * 2" identifier = (binary_expression "piVar14 + iVar3 * 2" identifier + (binary_expression "iVar3 * 2" identifier * number_literal))) ;) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" identifier = identifier) ;) (do_statement "do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);" do (compound_statement "{\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                }" { (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" identifier = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (expression_statement "piVar14 = piVar14 + 2;" (assignment_expression "piVar14 = piVar14 + 2" identifier = (binary_expression "piVar14 + 2" identifier + number_literal)) ;) (expression_statement "piVar19[2] = iVar17;" (assignment_expression "piVar19[2] = iVar17" (subscript_expression "piVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "piVar19[1] = iVar5;" (assignment_expression "piVar19[1] = iVar5" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" identifier = (binary_expression "piVar19 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar14 != piVar1)" ( (binary_expression "piVar14 != piVar1" identifier != identifier) )) ;) (expression_statement "piVar21 = piVar21 + iVar3 * 3;" (assignment_expression "piVar21 = piVar21 + iVar3 * 3" identifier = (binary_expression "piVar21 + iVar3 * 3" identifier + (binary_expression "iVar3 * 3" identifier * number_literal))) ;) })) (expression_statement "iVar17 = iVar17 + 0x50;" (assignment_expression "iVar17 = iVar17 + 0x50" identifier = (binary_expression "iVar17 + 0x50" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 != iVar17)" ( (binary_expression "iVar13 != iVar17" identifier != identifier) )) ;) })) (expression_statement "qsort(piVar12,__nmemb,0xc,FUN_0001c860);" (call_expression "qsort(piVar12,__nmemb,0xc,FUN_0001c860)" identifier (argument_list "(piVar12,__nmemb,0xc,FUN_0001c860)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" if (parenthesized_expression "(DAT_00074140 != 0)" ( (binary_expression "DAT_00074140 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" { (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" if (parenthesized_expression "(iVar17 != 0 || piVar12[1] != 0)" ( (binary_expression "iVar17 != 0 || piVar12[1] != 0" (binary_expression "iVar17 != 0" identifier != number_literal) || (binary_expression "piVar12[1] != 0" (subscript_expression "piVar12[1]" identifier [ number_literal ]) != number_literal)) )) (compound_statement "{\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" { (expression_statement "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier = (call_expression "dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" identifier (argument_list "(0,"Range lists in %s section start at 0x%lx\n",5)" ( number_literal , (string_literal ""Range lists in %s section start at 0x%lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" identifier (argument_list "(uVar16,uVar11,iVar17)" ( identifier , identifier , identifier ))) ;) })) })) (expression_statement "FUN_0001ec20();" (call_expression "FUN_0001ec20()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"    Offset   Begin    End\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"    Offset   Begin    End\n",5)" identifier (argument_list "(0,"    Offset   Begin    End\n",5)" ( number_literal , (string_literal ""    Offset   Begin    End\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar15);" (call_expression "printf(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) (expression_statement "pcVar20 = FUN_0001de70;" (assignment_expression "pcVar20 = FUN_0001de70" identifier = identifier) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar20 = FUN_00021b80;\n          }" { (expression_statement "pcVar20 = FUN_00021b80;" (assignment_expression "pcVar20 = FUN_00021b80" identifier = identifier) ;) })) (expression_statement "sVar22 = 0;" (assignment_expression "sVar22 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" identifier = identifier) ;) (expression_statement "local_34 = uVar2;" (assignment_expression "local_34 = uVar2" identifier = identifier) ;) (do_statement "do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);" do (compound_statement "{\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          }" { (while_statement "while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" { (expression_statement "uVar26 = local_28;" (assignment_expression "uVar26 = local_28" identifier = identifier) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar26 = *(uint *)piVar21[2];\n              }" { (expression_statement "uVar26 = *(uint *)piVar21[2];" (assignment_expression "uVar26 = *(uint *)piVar21[2]" identifier = (pointer_expression "*(uint *)piVar21[2]" * (cast_expression "(uint *)piVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ])))) ;) })) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "uVar24 = uVar2 + iVar17;" (assignment_expression "uVar24 = uVar2 + iVar17" identifier = (binary_expression "uVar2 + iVar17" identifier + identifier)) ;) (if_statement "if (6 < uVar26 - 2) break;" if (parenthesized_expression "(6 < uVar26 - 2)" ( (binary_expression "6 < uVar26 - 2" number_literal < (binary_expression "uVar26 - 2" identifier - number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" if (parenthesized_expression "((uVar24 < uVar2) || (uVar8 <= uVar24))" ( (binary_expression "(uVar24 < uVar2) || (uVar8 <= uVar24)" (parenthesized_expression "(uVar24 < uVar2)" ( (binary_expression "uVar24 < uVar2" identifier < identifier) )) || (parenthesized_expression "(uVar8 <= uVar24)" ( (binary_expression "uVar8 <= uVar24" identifier <= identifier) ))) )) (compound_statement "{\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }" { (expression_statement "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" identifier (argument_list "(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" ( number_literal , (string_literal ""Corrupt offset (%#8.8lx) in range entry %u\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,iVar17,sVar22);" (call_expression "warn(uVar11,iVar17,sVar22)" identifier (argument_list "(uVar11,iVar17,sVar22)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" else (compound_statement "{\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" { (expression_statement "uVar23 = ((uint *)piVar21[2])[5];" (assignment_expression "uVar23 = ((uint *)piVar21[2])[5]" identifier = (subscript_expression "((uint *)piVar21[2])[5]" (parenthesized_expression "((uint *)piVar21[2])" ( (cast_expression "(uint *)piVar21[2]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ])) )) [ number_literal ])) ;) (if_statement "if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" if (parenthesized_expression "((DAT_00074140 != 0) && (sVar22 != 0))" ( (binary_expression "(DAT_00074140 != 0) && (sVar22 != 0)" (parenthesized_expression "(DAT_00074140 != 0)" ( (binary_expression "DAT_00074140 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar22 != 0)" ( (binary_expression "sVar22 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" { (if_statement "if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" if (parenthesized_expression "(local_38 < uVar24)" ( (binary_expression "local_38 < uVar24" identifier < identifier) )) (compound_statement "{\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (call_expression "dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" identifier (argument_list "(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" ( number_literal , (string_literal ""There is a hole [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" identifier (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" ( identifier , (binary_expression "local_38 - uVar2" identifier - identifier) , identifier , identifier ))) ;) }) (else_clause "else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" else (if_statement "if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" if (parenthesized_expression "(uVar24 < local_38)" ( (binary_expression "uVar24 < local_38" identifier < identifier) )) (compound_statement "{\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" { (if_statement "if (uVar24 == local_34) goto LAB_00032d5f;" if (parenthesized_expression "(uVar24 == local_34)" ( (binary_expression "uVar24 == local_34" identifier == identifier) )) (goto_statement "goto LAB_00032d5f;" goto statement_identifier ;)) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (call_expression "dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" identifier (argument_list "(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" ( number_literal , (string_literal ""There is an overlap [0x%lx - 0x%lx] in %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" identifier (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" ( identifier , (binary_expression "local_38 - uVar2" identifier - identifier) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);" (call_expression "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(uVar24,uVar8,uVar26,iVar17,uVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_38 = uVar24;" (assignment_expression "local_38 = uVar24" identifier = identifier) ;) (expression_statement "local_34 = uVar24;" (assignment_expression "local_34 = uVar24" identifier = identifier) ;) }))) (labeled_statement "LAB_00032d5f:\n              sVar22 = sVar22 + 1;" statement_identifier : (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;)) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" identifier = (binary_expression "piVar21 + 3" identifier + number_literal)) ;) (if_statement "if (__nmemb == sVar22) goto LAB_00032e7c;" if (parenthesized_expression "(__nmemb == sVar22)" ( (binary_expression "__nmemb == sVar22" identifier == identifier) )) (goto_statement "goto LAB_00032e7c;" goto statement_identifier ;)) })) (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" identifier = (binary_expression "sVar22 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" identifier = (binary_expression "piVar21 + 3" identifier + number_literal)) ;) (expression_statement "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" identifier (argument_list "(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" ( number_literal , (string_literal ""Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,uVar26,iVar17);" (call_expression "warn(uVar11,uVar26,iVar17)" identifier (argument_list "(uVar11,uVar26,iVar17)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__nmemb != sVar22)" ( (binary_expression "__nmemb != sVar22" identifier != identifier) )) ;) (labeled_statement "LAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);" statement_identifier : (expression_statement "putc(10,*(FILE **)PTR_stdout_00072fdc);" (call_expression "putc(10,*(FILE **)PTR_stdout_00072fdc)" identifier (argument_list "(10,*(FILE **)PTR_stdout_00072fdc)" ( number_literal , (pointer_expression "*(FILE **)PTR_stdout_00072fdc" * (cast_expression "(FILE **)PTR_stdout_00072fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;)) (expression_statement "free(piVar12);" (call_expression "free(piVar12)" identifier (argument_list "(piVar12)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No range lists in .debug_info section.\n",5)" identifier (argument_list "(0,"No range lists in .debug_info section.\n",5)" ( number_literal , (string_literal ""No range lists in .debug_info section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = 5;" (assignment_expression "uVar26 = 5" identifier = number_literal) ;) (expression_statement "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" identifier = (call_expression "dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" identifier (argument_list "(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" ( number_literal , (string_literal ""Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (labeled_statement "LAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);" statement_identifier : (expression_statement "warn(uVar16,uVar11,uVar26);" (call_expression "warn(uVar16,uVar11,uVar26)" identifier (argument_list "(uVar16,uVar11,uVar26)" ( identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" else (compound_statement "{\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" { (expression_statement "uVar23 = uVar2 + 4;" (assignment_expression "uVar23 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" if (parenthesized_expression "(uVar23 < uVar8)" ( (binary_expression "uVar23 < uVar8" identifier < identifier) )) (compound_statement "{\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }" { (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" statement_identifier : (expression_statement "lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar2,uVar10)" identifier = (call_expression "(*DAT_00076b4c)(uVar2,uVar10)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar2,uVar10)" ( identifier , identifier )))) ;)) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" identifier = (cast_expression "(undefined4)lVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" if (parenthesized_expression "(lVar25 == 0xffffffff)" ( (binary_expression "lVar25 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }" { (expression_statement "uVar24 = uVar2 + 0xc;" (assignment_expression "uVar24 = uVar2 + 0xc" identifier = (binary_expression "uVar2 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" if (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar17 = 8;\n        }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) }) (else_clause "else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" else (compound_statement "{\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" { (if_statement "if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" if (parenthesized_expression "((uVar8 <= uVar23) || (7 < uVar26 - 5))" ( (binary_expression "(uVar8 <= uVar23) || (7 < uVar26 - 5)" (parenthesized_expression "(uVar8 <= uVar23)" ( (binary_expression "uVar8 <= uVar23" identifier <= identifier) )) || (parenthesized_expression "(7 < uVar26 - 5)" ( (binary_expression "7 < uVar26 - 5" number_literal < (binary_expression "uVar26 - 5" identifier - number_literal)) ))) )) (compound_statement "{\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" { (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = 0xc;" (assignment_expression "lVar25 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_000329b6;" goto statement_identifier ;) })) (expression_statement "iVar17 = uVar26 - 4;" (assignment_expression "iVar17 = uVar26 - 4" identifier = (binary_expression "uVar26 - 4" identifier - number_literal)) ;) }))) (expression_statement "lVar25 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar23,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23,iVar17)" ( identifier , identifier )))) ;) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" identifier = (cast_expression "(undefined4)lVar25" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar25 = lVar25 + 0xc;" (assignment_expression "lVar25 = lVar25 + 0xc" identifier = (binary_expression "lVar25 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" else (compound_statement "{\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" { (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "lVar25 = lVar25 + 4;" (assignment_expression "lVar25 = lVar25 + 4" identifier = (binary_expression "lVar25 + 4" identifier + number_literal)) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) }))) (labeled_statement "LAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" statement_identifier : (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "uVar23 = uVar24;" (assignment_expression "uVar23 = uVar24" identifier = identifier) ;) (if_statement "if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" if (parenthesized_expression "(uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25))" ( (binary_expression "uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 < uVar18" identifier < identifier) || (binary_expression "uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 - uVar18" identifier - identifier) < (call_expression "(uint)(uVar26 < (uint)lVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar26 < (uint)lVar25)" ( (binary_expression "uVar26 < (uint)lVar25" identifier < (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" statement_identifier : (expression_statement "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" (assignment_expression "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" identifier = (call_expression "FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" identifier (argument_list "(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" ( identifier , (binary_expression "(uVar23 - *(int *)(param_1 + 0x10)) - iVar17" (parenthesized_expression "(uVar23 - *(int *)(param_1 + 0x10))" ( (binary_expression "uVar23 - *(int *)(param_1 + 0x10)" identifier - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) )) - identifier) , number_literal )))) ;)) (if_statement "if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" { (expression_statement "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);" (assignment_expression "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" identifier = (call_expression "dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" identifier (argument_list "(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" ( number_literal , (string_literal ""The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11,local_4c);" (call_expression "warn(uVar11,local_4c)" identifier (argument_list "(uVar11,local_4c)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" else (compound_statement "{\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" { (if_statement "if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;" if (parenthesized_expression "((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8))" ( (binary_expression "(uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)" (parenthesized_expression "(uVar2 < uVar8)" ( (binary_expression "uVar2 < uVar8" identifier < identifier) )) && (parenthesized_expression "(uVar10 = uVar26, uVar26 - 1 < 8)" ( (comma_expression "uVar10 = uVar26, uVar26 - 1 < 8" (assignment_expression "uVar10 = uVar26" identifier = identifier) , (binary_expression "uVar26 - 1 < 8" (binary_expression "uVar26 - 1" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_0003296f;" goto statement_identifier ;)) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (if_statement "if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;" if (parenthesized_expression "(uVar24 < (uVar26 < 4))" ( (binary_expression "uVar24 < (uVar26 < 4)" identifier < (parenthesized_expression "(uVar26 < 4)" ( (binary_expression "uVar26 < 4" identifier < number_literal) ))) )) (goto_statement "goto LAB_00032a32;" goto statement_identifier ;)) }))) (expression_statement "uVar26 = uVar23 + 2;" (assignment_expression "uVar26 = uVar23 + 2" identifier = (binary_expression "uVar23 + 2" identifier + number_literal)) ;) (if_statement "if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" if (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) (compound_statement "{\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }" { (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" identifier = number_literal) ;) (labeled_statement "LAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" statement_identifier : (expression_statement "sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "sVar7 = (*DAT_00076b4c)(uVar23,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23,iVar17)" ( identifier , identifier )))) ;)) (if_statement "if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" if (parenthesized_expression "(sVar7 == 5)" ( (binary_expression "sVar7 == 5" identifier == number_literal) )) (compound_statement "{\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" { (expression_statement "uVar24 = uVar23 + 3;" (assignment_expression "uVar24 = uVar23 + 3" identifier = (binary_expression "uVar23 + 3" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" if (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) (compound_statement "{\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" { (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" statement_identifier : (expression_statement "bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar26,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar26,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar26,iVar17)" ( identifier , identifier )))) ;)) (expression_statement "local_28 = (uint)bVar6;" (assignment_expression "local_28 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar23 + 4 < uVar8) goto LAB_00032df4;" if (parenthesized_expression "(uVar23 + 4 < uVar8)" ( (binary_expression "uVar23 + 4 < uVar8" (binary_expression "uVar23 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_00032df4;" goto statement_identifier ;)) (if_statement "if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;" if (parenthesized_expression "((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8))" ( (binary_expression "(uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" (parenthesized_expression "(uVar24 < uVar8)" ( (binary_expression "uVar24 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar24, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar24" identifier = (binary_expression "uVar8 - uVar24" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032df9;" goto statement_identifier ;)) (labeled_statement "LAB_00032af4:\n          local_38 = uVar23 + 8;" statement_identifier : (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;)) (if_statement "if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;" if (parenthesized_expression "(uVar8 <= uVar23 + 8)" ( (binary_expression "uVar8 <= uVar23 + 8" identifier <= (binary_expression "uVar23 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (labeled_statement "LAB_00032b01:\n          iVar17 = 4;" statement_identifier : (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" identifier = number_literal) ;)) (labeled_statement "LAB_00032b06:\n          local_38 = uVar23 + 8;" statement_identifier : (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;)) (expression_statement "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);" (assignment_expression "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar23 + 4,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar23 + 4,iVar17)" ( (binary_expression "uVar23 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" identifier = (call_expression "dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" identifier (argument_list "(0,"The %s section contains unsupported offset entry count: %u.\n",5)" ( number_literal , (string_literal ""The %s section contains unsupported offset entry count: %u.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" identifier (argument_list "(uVar16,uVar11,iVar17)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;) })) (if_statement "if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;" if (parenthesized_expression "((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8))" ( (binary_expression "(uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" (parenthesized_expression "(uVar26 < uVar8)" ( (binary_expression "uVar26 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar26, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar26" identifier = (binary_expression "uVar8 - uVar26" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032abc;" goto statement_identifier ;)) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (if_statement "if (uVar8 <= uVar23 + 4) goto LAB_00032af4;" if (parenthesized_expression "(uVar8 <= uVar23 + 4)" ( (binary_expression "uVar8 <= uVar23 + 4" identifier <= (binary_expression "uVar23 + 4" identifier + number_literal)) )) (goto_statement "goto LAB_00032af4;" goto statement_identifier ;)) (labeled_statement "LAB_00032df4:\n        iVar17 = 1;" statement_identifier : (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" statement_identifier : (expression_statement "bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar24,iVar17)" identifier = (call_expression "(*DAT_00076b4c)(uVar24,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" ( (pointer_expression "*DAT_00076b4c" * identifier) )) (argument_list "(uVar24,iVar17)" ( identifier , identifier )))) ;)) (if_statement "if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" { (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" identifier = (binary_expression "uVar23 + 8" identifier + number_literal)) ;) (if_statement "if (local_38 < uVar8) goto LAB_00032b01;" if (parenthesized_expression "(local_38 < uVar8)" ( (binary_expression "local_38 < uVar8" identifier < identifier) )) (goto_statement "goto LAB_00032b01;" goto statement_identifier ;)) (if_statement "if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;" if (parenthesized_expression "((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))" ( (binary_expression "(uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" (parenthesized_expression "(uVar8 <= uVar23 + 4)" ( (binary_expression "uVar8 <= uVar23 + 4" identifier <= (binary_expression "uVar23 + 4" identifier + number_literal)) )) || (parenthesized_expression "(iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" ( (comma_expression "iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U" (assignment_expression "iVar17 = uVar8 - (uVar23 + 4)" identifier = (binary_expression "uVar8 - (uVar23 + 4)" identifier - (parenthesized_expression "(uVar23 + 4)" ( (binary_expression "uVar23 + 4" identifier + number_literal) )))) , (binary_expression "7 < iVar17 - 1U" number_literal < (binary_expression "iVar17 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_00032b1b;" goto statement_identifier ;)) (goto_statement "goto LAB_00032b06;" goto statement_identifier ;) })) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" identifier = (call_expression "dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" identifier (argument_list "(0,"The %s section contains unsupported segment selector size: %d.\n",5)" ( number_literal , (string_literal ""The %s section contains unsupported segment selector size: %d.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar26 = (uint)bVar6;" (assignment_expression "uVar26 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_00032fe2;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" else (if_statement "if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" if (parenthesized_expression "((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8))" ( (binary_expression "(uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" (parenthesized_expression "(uVar23 < uVar8)" ( (binary_expression "uVar23 < uVar8" identifier < identifier) )) && (parenthesized_expression "(iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" ( (comma_expression "iVar17 = uVar8 - uVar23, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar23" identifier = (binary_expression "uVar8 - uVar23" identifier - identifier)) , (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00032a8d;" goto statement_identifier ;)))) (expression_statement "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" identifier = (call_expression "dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" identifier (argument_list "(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" ( number_literal , (string_literal ""Only DWARF version 5 debug_rnglists info is currently supported.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar11);" (call_expression "warn(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 *)) ) (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 = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 + (binary_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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 ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - IDENT) , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - IDENT) , IDENT , IDENT ))) ;) })))) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression 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)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) }) (else_clause else (compound_statement { (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - IDENT) , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (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 <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression LIT < (binary_expression 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00032900(int param_1)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_00032900(int param_1)" (identifier "FUN_00032900") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  byte bVar6;\n  short sVar7;\n  uint uVar8;\n  char *pcVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int *piVar12;\n  int iVar13;\n  int *piVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int iVar17;\n  uint uVar18;\n  size_t __nmemb;\n  int *piVar19;\n  code *pcVar20;\n  int *piVar21;\n  size_t sVar22;\n  uint uVar23;\n  uint uVar24;\n  longlong lVar25;\n  uint uVar26;\n  undefined4 local_4c;\n  uint local_38;\n  uint local_34;\n  uint local_28;\n  \n  uVar26 = *(uint *)(param_1 + 0x1c);\n  uVar2 = *(uint *)(param_1 + 0x10);\n  uVar24 = *(uint *)(param_1 + 0x20);\n  pcVar9 = *(char **)(param_1 + 8);\n  uVar8 = uVar2 + uVar26;\n  if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }\n  pcVar9 = strstr(pcVar9,"debug_rnglists");\n  if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }\n  return 0;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "short sVar7;" (sized_type_specifier "short" (short "short")) (identifier "sVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "size_t __nmemb;" (primitive_type "size_t") (identifier "__nmemb") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "size_t sVar22;" (primitive_type "size_t") (identifier "sVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "longlong lVar25;" (type_identifier "longlong") (identifier "lVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_1 + 0x10);" (assignment_expression "uVar2 = *(uint *)(param_1 + 0x10)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_1 + 0x10)" (* "*") (cast_expression "(uint *)(param_1 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar24 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar24 = *(uint *)(param_1 + 0x20)" (identifier "uVar24") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pcVar9 = *(char **)(param_1 + 8);" (assignment_expression "pcVar9 = *(char **)(param_1 + 8)" (identifier "pcVar9") (= "=") (pointer_expression "*(char **)(param_1 + 8)" (* "*") (cast_expression "(char **)(param_1 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar8 = uVar2 + uVar26;" (assignment_expression "uVar8 = uVar2 + uVar26" (identifier "uVar8") (= "=") (binary_expression "uVar2 + uVar26" (identifier "uVar2") (+ "+") (identifier "uVar26"))) (; ";")) (if_statement "if (uVar26 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" (if "if") (parenthesized_expression "(uVar26 == 0)" (( "(") (binary_expression "uVar26 == 0" (identifier "uVar26") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar9);\n    return 0;\n  }" ({ "{") (expression_statement "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5)" (identifier "pcVar15") (= "=") (cast_expression "(char *)dcgettext(0,"\nThe %s section is empty.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nThe %s section is empty.\n",5)" (identifier "dcgettext") (argument_list "(0,"\nThe %s section is empty.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nThe %s section is empty.\n"" (" """) (escape_sequence "\n") (string_content "The %s section is empty.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar15,pcVar9);" (call_expression "printf(pcVar15,pcVar9)" (identifier "printf") (argument_list "(pcVar15,pcVar9)" (( "(") (identifier "pcVar15") (, ",") (identifier "pcVar9") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar9 = strstr(pcVar9,"debug_rnglists");" (assignment_expression "pcVar9 = strstr(pcVar9,"debug_rnglists")" (identifier "pcVar9") (= "=") (call_expression "strstr(pcVar9,"debug_rnglists")" (identifier "strstr") (argument_list "(pcVar9,"debug_rnglists")" (( "(") (identifier "pcVar9") (, ",") (string_literal ""debug_rnglists"" (" """) (string_content "debug_rnglists") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar9 == (char *)0x0) {\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }\n  else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" (if "if") (parenthesized_expression "(pcVar9 == (char *)0x0)" (( "(") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_28 = 0;\n    local_38 = uVar2;\nLAB_00032b1b:\n    iVar17 = FUN_00032500();\n    if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }\n    uVar11 = *(undefined4 *)(param_1 + 8);\n    uVar26 = 5;\n    uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\nLAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);\n  }" ({ "{") (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = uVar2;" (assignment_expression "local_38 = uVar2" (identifier "local_38") (= "=") (identifier "uVar2")) (; ";")) (labeled_statement "LAB_00032b1b:\n    iVar17 = FUN_00032500();" (statement_identifier "LAB_00032b1b") (: ":") (expression_statement "iVar17 = FUN_00032500();" (assignment_expression "iVar17 = FUN_00032500()" (identifier "iVar17") (= "=") (call_expression "FUN_00032500()" (identifier "FUN_00032500") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar17 != 0) {\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }\n      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n      printf(pcVar9);\n      return 1;\n    }" ({ "{") (if_statement "if (DAT_0007694c != 0) {\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" (if "if") (parenthesized_expression "(DAT_0007694c != 0)" (( "(") (binary_expression "DAT_0007694c != 0" (identifier "DAT_0007694c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar12 = (int *)(DAT_00076944 + 0x48);\n        __nmemb = 0;\n        do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));\n        if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }\n      }" ({ "{") (expression_statement "piVar12 = (int *)(DAT_00076944 + 0x48);" (assignment_expression "piVar12 = (int *)(DAT_00076944 + 0x48)" (identifier "piVar12") (= "=") (cast_expression "(int *)(DAT_00076944 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00076944 + 0x48)" (( "(") (binary_expression "DAT_00076944 + 0x48" (identifier "DAT_00076944") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" (identifier "__nmemb") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));" (do "do") (compound_statement "{\n          iVar17 = *piVar12;\n          piVar12 = piVar12 + 0x14;\n          __nmemb = iVar17 + __nmemb;\n        }" ({ "{") (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" (identifier "iVar17") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "piVar12 = piVar12 + 0x14;" (assignment_expression "piVar12 = piVar12 + 0x14" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 0x14" (identifier "piVar12") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "__nmemb = iVar17 + __nmemb;" (assignment_expression "__nmemb = iVar17 + __nmemb" (identifier "__nmemb") (= "=") (binary_expression "iVar17 + __nmemb" (identifier "iVar17") (+ "+") (identifier "__nmemb"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50))" (( "(") (binary_expression "piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" (identifier "piVar12") (!= "!=") (cast_expression "(int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00076944 + 0x48 + DAT_0007694c * 0x50)" (( "(") (binary_expression "DAT_00076944 + 0x48 + DAT_0007694c * 0x50" (binary_expression "DAT_00076944 + 0x48" (identifier "DAT_00076944") (+ "+") (number_literal "0x48")) (+ "+") (binary_expression "DAT_0007694c * 0x50" (identifier "DAT_0007694c") (* "*") (number_literal "0x50"))) () ")")))) () ")")) (; ";")) (if_statement "if (__nmemb != 0) {\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" (if "if") (parenthesized_expression "(__nmemb != 0)" (( "(") (binary_expression "__nmemb != 0" (identifier "__nmemb") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar12 = (int *)xmalloc(__nmemb * 0xc);\n          if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }\n          qsort(piVar12,__nmemb,0xc,FUN_0001c860);\n          if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }\n          FUN_0001ec20();\n          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n          printf(pcVar15);\n          pcVar20 = FUN_0001de70;\n          if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }\n          sVar22 = 0;\n          piVar21 = piVar12;\n          local_34 = uVar2;\n          do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);\nLAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);\n          free(piVar12);\n          return 1;\n        }" ({ "{") (expression_statement "piVar12 = (int *)xmalloc(__nmemb * 0xc);" (assignment_expression "piVar12 = (int *)xmalloc(__nmemb * 0xc)" (identifier "piVar12") (= "=") (cast_expression "(int *)xmalloc(__nmemb * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(__nmemb * 0xc)" (identifier "xmalloc") (argument_list "(__nmemb * 0xc)" (( "(") (binary_expression "__nmemb * 0xc" (identifier "__nmemb") (* "*") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (DAT_0007694c != 0) {\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" (if "if") (parenthesized_expression "(DAT_0007694c != 0)" (( "(") (binary_expression "DAT_0007694c != 0" (identifier "DAT_0007694c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;\n            iVar17 = DAT_00076944;\n            piVar21 = piVar12;\n            do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);\n          }" ({ "{") (expression_statement "iVar13 = DAT_0007694c * 0x50 + DAT_00076944;" (assignment_expression "iVar13 = DAT_0007694c * 0x50 + DAT_00076944" (identifier "iVar13") (= "=") (binary_expression "DAT_0007694c * 0x50 + DAT_00076944" (binary_expression "DAT_0007694c * 0x50" (identifier "DAT_0007694c") (* "*") (number_literal "0x50")) (+ "+") (identifier "DAT_00076944"))) (; ";")) (expression_statement "iVar17 = DAT_00076944;" (assignment_expression "iVar17 = DAT_00076944" (identifier "iVar17") (= "=") (identifier "DAT_00076944")) (; ";")) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" (identifier "piVar21") (= "=") (identifier "piVar12")) (; ";")) (do_statement "do {\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            } while (iVar13 != iVar17);" (do "do") (compound_statement "{\n              iVar3 = *(int *)(iVar17 + 0x48);\n              if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }\n              iVar17 = iVar17 + 0x50;\n            }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar17 + 0x48);" (assignment_expression "iVar3 = *(int *)(iVar17 + 0x48)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar17 + 0x48)" (* "*") (cast_expression "(int *)(iVar17 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x48)" (( "(") (binary_expression "iVar17 + 0x48" (identifier "iVar17") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) {\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                piVar14 = *(int **)(iVar17 + 0x44);\n                piVar1 = piVar14 + iVar3 * 2;\n                piVar19 = piVar21;\n                do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);\n                piVar21 = piVar21 + iVar3 * 3;\n              }" ({ "{") (expression_statement "piVar14 = *(int **)(iVar17 + 0x44);" (assignment_expression "piVar14 = *(int **)(iVar17 + 0x44)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(iVar17 + 0x44)" (* "*") (cast_expression "(int **)(iVar17 + 0x44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x44)" (( "(") (binary_expression "iVar17 + 0x44" (identifier "iVar17") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "piVar1 = piVar14 + iVar3 * 2;" (assignment_expression "piVar1 = piVar14 + iVar3 * 2" (identifier "piVar1") (= "=") (binary_expression "piVar14 + iVar3 * 2" (identifier "piVar14") (+ "+") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2")))) (; ";")) (expression_statement "piVar19 = piVar21;" (assignment_expression "piVar19 = piVar21" (identifier "piVar19") (= "=") (identifier "piVar21")) (; ";")) (do_statement "do {\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                } while (piVar14 != piVar1);" (do "do") (compound_statement "{\n                  iVar4 = *piVar14;\n                  iVar5 = piVar14[1];\n                  piVar14 = piVar14 + 2;\n                  piVar19[2] = iVar17;\n                  *piVar19 = iVar4;\n                  piVar19[1] = iVar5;\n                  piVar19 = piVar19 + 3;\n                }" ({ "{") (expression_statement "iVar4 = *piVar14;" (assignment_expression "iVar4 = *piVar14" (identifier "iVar4") (= "=") (pointer_expression "*piVar14" (* "*") (identifier "piVar14"))) (; ";")) (expression_statement "iVar5 = piVar14[1];" (assignment_expression "iVar5 = piVar14[1]" (identifier "iVar5") (= "=") (subscript_expression "piVar14[1]" (identifier "piVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar14 = piVar14 + 2;" (assignment_expression "piVar14 = piVar14 + 2" (identifier "piVar14") (= "=") (binary_expression "piVar14 + 2" (identifier "piVar14") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "piVar19[2] = iVar17;" (assignment_expression "piVar19[2] = iVar17" (subscript_expression "piVar19[2]" (identifier "piVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "*piVar19 = iVar4;" (assignment_expression "*piVar19 = iVar4" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "piVar19[1] = iVar5;" (assignment_expression "piVar19[1] = iVar5" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 3" (identifier "piVar19") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar14 != piVar1)" (( "(") (binary_expression "piVar14 != piVar1" (identifier "piVar14") (!= "!=") (identifier "piVar1")) () ")")) (; ";")) (expression_statement "piVar21 = piVar21 + iVar3 * 3;" (assignment_expression "piVar21 = piVar21 + iVar3 * 3" (identifier "piVar21") (= "=") (binary_expression "piVar21 + iVar3 * 3" (identifier "piVar21") (+ "+") (binary_expression "iVar3 * 3" (identifier "iVar3") (* "*") (number_literal "3")))) (; ";")) (} "}"))) (expression_statement "iVar17 = iVar17 + 0x50;" (assignment_expression "iVar17 = iVar17 + 0x50" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 0x50" (identifier "iVar17") (+ "+") (number_literal "0x50"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != iVar17)" (( "(") (binary_expression "iVar13 != iVar17" (identifier "iVar13") (!= "!=") (identifier "iVar17")) () ")")) (; ";")) (} "}"))) (expression_statement "qsort(piVar12,__nmemb,0xc,FUN_0001c860);" (call_expression "qsort(piVar12,__nmemb,0xc,FUN_0001c860)" (identifier "qsort") (argument_list "(piVar12,__nmemb,0xc,FUN_0001c860)" (( "(") (identifier "piVar12") (, ",") (identifier "__nmemb") (, ",") (number_literal "0xc") (, ",") (identifier "FUN_0001c860") () ")"))) (; ";")) (if_statement "if (DAT_00074140 != 0) {\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" (if "if") (parenthesized_expression "(DAT_00074140 != 0)" (( "(") (binary_expression "DAT_00074140 != 0" (identifier "DAT_00074140") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar17 = *piVar12;\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }\n          }" ({ "{") (expression_statement "iVar17 = *piVar12;" (assignment_expression "iVar17 = *piVar12" (identifier "iVar17") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar17 != 0 || piVar12[1] != 0) {\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" (if "if") (parenthesized_expression "(iVar17 != 0 || piVar12[1] != 0)" (( "(") (binary_expression "iVar17 != 0 || piVar12[1] != 0" (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "piVar12[1] != 0" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n              warn(uVar16,uVar11,iVar17);\n            }" ({ "{") (expression_statement "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" (identifier "dcgettext") (argument_list "(0,"Range lists in %s section start at 0x%lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Range lists in %s section start at 0x%lx\n"" (" """) (string_content "Range lists in %s section start at 0x%lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" (identifier "warn") (argument_list "(uVar16,uVar11,iVar17)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar11") (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0001ec20();" (call_expression "FUN_0001ec20()" (identifier "FUN_0001ec20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5)" (identifier "pcVar15") (= "=") (cast_expression "(char *)dcgettext(0,"    Offset   Begin    End\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"    Offset   Begin    End\n",5)" (identifier "dcgettext") (argument_list "(0,"    Offset   Begin    End\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""    Offset   Begin    End\n"" (" """) (string_content "    Offset   Begin    End") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar15);" (call_expression "printf(pcVar15)" (identifier "printf") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")"))) (; ";")) (expression_statement "pcVar20 = FUN_0001de70;" (assignment_expression "pcVar20 = FUN_0001de70" (identifier "pcVar20") (= "=") (identifier "FUN_0001de70")) (; ";")) (if_statement "if (pcVar9 != (char *)0x0) {\n            pcVar20 = FUN_00021b80;\n          }" (if "if") (parenthesized_expression "(pcVar9 != (char *)0x0)" (( "(") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pcVar20 = FUN_00021b80;\n          }" ({ "{") (expression_statement "pcVar20 = FUN_00021b80;" (assignment_expression "pcVar20 = FUN_00021b80" (identifier "pcVar20") (= "=") (identifier "FUN_00021b80")) (; ";")) (} "}"))) (expression_statement "sVar22 = 0;" (assignment_expression "sVar22 = 0" (identifier "sVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = piVar12;" (assignment_expression "piVar21 = piVar12" (identifier "piVar21") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "local_34 = uVar2;" (assignment_expression "local_34 = uVar2" (identifier "local_34") (= "=") (identifier "uVar2")) (; ";")) (do_statement "do {\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          } while (__nmemb != sVar22);" (do "do") (compound_statement "{\n            while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }\n            sVar22 = sVar22 + 1;\n            piVar21 = piVar21 + 3;\n            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n            warn(uVar11,uVar26,iVar17);\n          }" ({ "{") (while_statement "while( true ) {\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar26 = local_28;\n              if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }\n              iVar17 = *piVar21;\n              uVar24 = uVar2 + iVar17;\n              if (6 < uVar26 - 2) break;\n              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }\nLAB_00032d5f:\n              sVar22 = sVar22 + 1;\n              piVar21 = piVar21 + 3;\n              if (__nmemb == sVar22) goto LAB_00032e7c;\n            }" ({ "{") (expression_statement "uVar26 = local_28;" (assignment_expression "uVar26 = local_28" (identifier "uVar26") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (pcVar9 == (char *)0x0) {\n                uVar26 = *(uint *)piVar21[2];\n              }" (if "if") (parenthesized_expression "(pcVar9 == (char *)0x0)" (( "(") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                uVar26 = *(uint *)piVar21[2];\n              }" ({ "{") (expression_statement "uVar26 = *(uint *)piVar21[2];" (assignment_expression "uVar26 = *(uint *)piVar21[2]" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)piVar21[2]" (* "*") (cast_expression "(uint *)piVar21[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[2]" (identifier "piVar21") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}"))) (expression_statement "iVar17 = *piVar21;" (assignment_expression "iVar17 = *piVar21" (identifier "iVar17") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "uVar24 = uVar2 + iVar17;" (assignment_expression "uVar24 = uVar2 + iVar17" (identifier "uVar24") (= "=") (binary_expression "uVar2 + iVar17" (identifier "uVar2") (+ "+") (identifier "iVar17"))) (; ";")) (if_statement "if (6 < uVar26 - 2) break;" (if "if") (parenthesized_expression "(6 < uVar26 - 2)" (( "(") (binary_expression "6 < uVar26 - 2" (number_literal "6") (< "<") (binary_expression "uVar26 - 2" (identifier "uVar26") (- "-") (number_literal "2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }\n              else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" (if "if") (parenthesized_expression "((uVar24 < uVar2) || (uVar8 <= uVar24))" (( "(") (binary_expression "(uVar24 < uVar2) || (uVar8 <= uVar24)" (parenthesized_expression "(uVar24 < uVar2)" (( "(") (binary_expression "uVar24 < uVar2" (identifier "uVar24") (< "<") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "(uVar8 <= uVar24)" (( "(") (binary_expression "uVar8 <= uVar24" (identifier "uVar8") (<= "<=") (identifier "uVar24")) () ")"))) () ")")) (compound_statement "{\n                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n                warn(uVar11,iVar17,sVar22);\n              }" ({ "{") (expression_statement "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" (identifier "dcgettext") (argument_list "(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Corrupt offset (%#8.8lx) in range entry %u\n"" (" """) (string_content "Corrupt offset (%#8.8lx) in range entry %u") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar11,iVar17,sVar22);" (call_expression "warn(uVar11,iVar17,sVar22)" (identifier "warn") (argument_list "(uVar11,iVar17,sVar22)" (( "(") (identifier "uVar11") (, ",") (identifier "iVar17") (, ",") (identifier "sVar22") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" (else "else") (compound_statement "{\n                uVar23 = ((uint *)piVar21[2])[5];\n                if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }\n                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);\n                local_38 = uVar24;\n                local_34 = uVar24;\n              }" ({ "{") (expression_statement "uVar23 = ((uint *)piVar21[2])[5];" (assignment_expression "uVar23 = ((uint *)piVar21[2])[5]" (identifier "uVar23") (= "=") (subscript_expression "((uint *)piVar21[2])[5]" (parenthesized_expression "((uint *)piVar21[2])" (( "(") (cast_expression "(uint *)piVar21[2]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[2]" (identifier "piVar21") ([ "[") (number_literal "2") (] "]"))) () ")")) ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((DAT_00074140 != 0) && (sVar22 != 0)) {\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" (if "if") (parenthesized_expression "((DAT_00074140 != 0) && (sVar22 != 0))" (( "(") (binary_expression "(DAT_00074140 != 0) && (sVar22 != 0)" (parenthesized_expression "(DAT_00074140 != 0)" (( "(") (binary_expression "DAT_00074140 != 0" (identifier "DAT_00074140") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(sVar22 != 0)" (( "(") (binary_expression "sVar22 != 0" (identifier "sVar22") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                }" ({ "{") (if_statement "if (local_38 < uVar24) {\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }\n                  else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" (if "if") (parenthesized_expression "(local_38 < uVar24)" (( "(") (binary_expression "local_38 < uVar24" (identifier "local_38") (< "<") (identifier "uVar24")) () ")")) (compound_statement "{\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "dcgettext") (argument_list "(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""There is a hole [0x%lx - 0x%lx] in %s section.\n"" (" """) (string_content "There is a hole [0x%lx - 0x%lx] in %s section.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" (identifier "warn") (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" (( "(") (identifier "uVar16") (, ",") (binary_expression "local_38 - uVar2" (identifier "local_38") (- "-") (identifier "uVar2")) (, ",") (identifier "iVar17") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" (else "else") (if_statement "if (uVar24 < local_38) {\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" (if "if") (parenthesized_expression "(uVar24 < local_38)" (( "(") (binary_expression "uVar24 < local_38" (identifier "uVar24") (< "<") (identifier "local_38")) () ")")) (compound_statement "{\n                    if (uVar24 == local_34) goto LAB_00032d5f;\n                    uVar11 = *(undefined4 *)(param_1 + 8);\n                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);\n                  }" ({ "{") (if_statement "if (uVar24 == local_34) goto LAB_00032d5f;" (if "if") (parenthesized_expression "(uVar24 == local_34)" (( "(") (binary_expression "uVar24 == local_34" (identifier "uVar24") (== "==") (identifier "local_34")) () ")")) (goto_statement "goto LAB_00032d5f;" (goto "goto") (statement_identifier "LAB_00032d5f") (; ";"))) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "dcgettext") (argument_list "(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""There is an overlap [0x%lx - 0x%lx] in %s section.\n"" (" """) (string_content "There is an overlap [0x%lx - 0x%lx] in %s section.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar16,local_38 - uVar2,iVar17,uVar11);" (call_expression "warn(uVar16,local_38 - uVar2,iVar17,uVar11)" (identifier "warn") (argument_list "(uVar16,local_38 - uVar2,iVar17,uVar11)" (( "(") (identifier "uVar16") (, ",") (binary_expression "local_38 - uVar2" (identifier "local_38") (- "-") (identifier "uVar2")) (, ",") (identifier "iVar17") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);" (call_expression "(*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(uVar24,uVar8,uVar26,iVar17,uVar23)" (( "(") (identifier "uVar24") (, ",") (identifier "uVar8") (, ",") (identifier "uVar26") (, ",") (identifier "iVar17") (, ",") (identifier "uVar23") () ")"))) (; ";")) (expression_statement "local_38 = uVar24;" (assignment_expression "local_38 = uVar24" (identifier "local_38") (= "=") (identifier "uVar24")) (; ";")) (expression_statement "local_34 = uVar24;" (assignment_expression "local_34 = uVar24" (identifier "local_34") (= "=") (identifier "uVar24")) (; ";")) (} "}")))) (labeled_statement "LAB_00032d5f:\n              sVar22 = sVar22 + 1;" (statement_identifier "LAB_00032d5f") (: ":") (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" (identifier "sVar22") (= "=") (binary_expression "sVar22 + 1" (identifier "sVar22") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 3" (identifier "piVar21") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (__nmemb == sVar22) goto LAB_00032e7c;" (if "if") (parenthesized_expression "(__nmemb == sVar22)" (( "(") (binary_expression "__nmemb == sVar22" (identifier "__nmemb") (== "==") (identifier "sVar22")) () ")")) (goto_statement "goto LAB_00032e7c;" (goto "goto") (statement_identifier "LAB_00032e7c") (; ";"))) (} "}"))) (expression_statement "sVar22 = sVar22 + 1;" (assignment_expression "sVar22 = sVar22 + 1" (identifier "sVar22") (= "=") (binary_expression "sVar22 + 1" (identifier "sVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar21 = piVar21 + 3;" (assignment_expression "piVar21 = piVar21 + 3" (identifier "piVar21") (= "=") (binary_expression "piVar21 + 3" (identifier "piVar21") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" (identifier "dcgettext") (argument_list "(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"" (" """) (string_content "Corrupt pointer size (%d) in debug entry at offset %8.8lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar11,uVar26,iVar17);" (call_expression "warn(uVar11,uVar26,iVar17)" (identifier "warn") (argument_list "(uVar11,uVar26,iVar17)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar26") (, ",") (identifier "iVar17") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__nmemb != sVar22)" (( "(") (binary_expression "__nmemb != sVar22" (identifier "__nmemb") (!= "!=") (identifier "sVar22")) () ")")) (; ";")) (labeled_statement "LAB_00032e7c:\n          putc(10,*(FILE **)PTR_stdout_00072fdc);" (statement_identifier "LAB_00032e7c") (: ":") (expression_statement "putc(10,*(FILE **)PTR_stdout_00072fdc);" (call_expression "putc(10,*(FILE **)PTR_stdout_00072fdc)" (identifier "putc") (argument_list "(10,*(FILE **)PTR_stdout_00072fdc)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)PTR_stdout_00072fdc" (* "*") (cast_expression "(FILE **)PTR_stdout_00072fdc" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_00072fdc"))) () ")"))) (; ";"))) (expression_statement "free(piVar12);" (call_expression "free(piVar12)" (identifier "free") (argument_list "(piVar12)" (( "(") (identifier "piVar12") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"No range lists in .debug_info section.\n",5)" (identifier "dcgettext") (argument_list "(0,"No range lists in .debug_info section.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""No range lists in .debug_info section.\n"" (" """) (string_content "No range lists in .debug_info section.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" (identifier "printf") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar26 = 5;" (assignment_expression "uVar26 = 5" (identifier "uVar26") (= "=") (number_literal "5")) (; ";")) (expression_statement "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar16 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" (identifier "dcgettext") (argument_list "(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"" (" """) (string_content "Unable to load/parse the .debug_info section, so cannot interpret the %s section.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (labeled_statement "LAB_00032fe2:\n    warn(uVar16,uVar11,uVar26);" (statement_identifier "LAB_00032fe2") (: ":") (expression_statement "warn(uVar16,uVar11,uVar26);" (call_expression "warn(uVar16,uVar11,uVar26)" (identifier "warn") (argument_list "(uVar16,uVar11,uVar26)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar11") (, ",") (identifier "uVar26") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" (else "else") (compound_statement "{\n    uVar23 = uVar2 + 4;\n    if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }\n    uVar26 = uVar23 + 2;\n    if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;\n    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n    warn(uVar11);\n  }" ({ "{") (expression_statement "uVar23 = uVar2 + 4;" (assignment_expression "uVar23 = uVar2 + 4" (identifier "uVar23") (= "=") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar23 < uVar8) {\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" (if "if") (parenthesized_expression "(uVar23 < uVar8)" (( "(") (binary_expression "uVar23 < uVar8" (identifier "uVar23") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n      uVar10 = 4;\nLAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);\n      local_4c = (undefined4)lVar25;\n      if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }\nLAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar23 = uVar24;\n      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" (identifier "uVar10") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0003296f:\n      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" (statement_identifier "LAB_0003296f") (: ":") (expression_statement "lVar25 = (*DAT_00076b4c)(uVar2,uVar10);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar2,uVar10)" (identifier "lVar25") (= "=") (call_expression "(*DAT_00076b4c)(uVar2,uVar10)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar2,uVar10)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar10") () ")")))) (; ";"))) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" (identifier "local_4c") (= "=") (cast_expression "(undefined4)lVar25" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar25"))) (; ";")) (if_statement "if (lVar25 == 0xffffffff) {\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }\n      else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" (if "if") (parenthesized_expression "(lVar25 == 0xffffffff)" (( "(") (binary_expression "lVar25 == 0xffffffff" (identifier "lVar25") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        uVar24 = uVar2 + 0xc;\n        if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }\n        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);\n        local_4c = (undefined4)lVar25;\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        lVar25 = lVar25 + 0xc;\n        iVar17 = 8;\n      }" ({ "{") (expression_statement "uVar24 = uVar2 + 0xc;" (assignment_expression "uVar24 = uVar2 + 0xc" (identifier "uVar24") (= "=") (binary_expression "uVar2 + 0xc" (identifier "uVar2") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 8;\n        }\n        else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" (if "if") (parenthesized_expression "(uVar24 < uVar8)" (( "(") (binary_expression "uVar24 < uVar8" (identifier "uVar24") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          iVar17 = 8;\n        }" ({ "{") (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" (identifier "iVar17") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" (else "else") (compound_statement "{\n          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }\n          iVar17 = uVar26 - 4;\n        }" ({ "{") (if_statement "if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" (if "if") (parenthesized_expression "((uVar8 <= uVar23) || (7 < uVar26 - 5))" (( "(") (binary_expression "(uVar8 <= uVar23) || (7 < uVar26 - 5)" (parenthesized_expression "(uVar8 <= uVar23)" (( "(") (binary_expression "uVar8 <= uVar23" (identifier "uVar8") (<= "<=") (identifier "uVar23")) () ")")) (|| "||") (parenthesized_expression "(7 < uVar26 - 5)" (( "(") (binary_expression "7 < uVar26 - 5" (number_literal "7") (< "<") (binary_expression "uVar26 - 5" (identifier "uVar26") (- "-") (number_literal "5"))) () ")"))) () ")")) (compound_statement "{\n            iVar17 = 8;\n            local_4c = 0;\n            uVar26 = *(uint *)(param_1 + 0x1c);\n            uVar10 = *(uint *)(param_1 + 0x20);\n            lVar25 = 0xc;\n            goto LAB_000329b6;\n          }" ({ "{") (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" (identifier "iVar17") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "lVar25 = 0xc;" (assignment_expression "lVar25 = 0xc" (identifier "lVar25") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_000329b6;" (goto "goto") (statement_identifier "LAB_000329b6") (; ";")) (} "}"))) (expression_statement "iVar17 = uVar26 - 4;" (assignment_expression "iVar17 = uVar26 - 4" (identifier "iVar17") (= "=") (binary_expression "uVar26 - 4" (identifier "uVar26") (- "-") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "lVar25 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "lVar25 = (*DAT_00076b4c)(uVar23,iVar17)" (identifier "lVar25") (= "=") (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar23,iVar17)" (( "(") (identifier "uVar23") (, ",") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "local_4c = (undefined4)lVar25;" (assignment_expression "local_4c = (undefined4)lVar25" (identifier "local_4c") (= "=") (cast_expression "(undefined4)lVar25" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar25"))) (; ";")) (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "lVar25 = lVar25 + 0xc;" (assignment_expression "lVar25 = lVar25 + 0xc" (identifier "lVar25") (= "=") (binary_expression "lVar25 + 0xc" (identifier "lVar25") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" (identifier "iVar17") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" (else "else") (compound_statement "{\n        uVar26 = *(uint *)(param_1 + 0x1c);\n        uVar10 = *(uint *)(param_1 + 0x20);\n        iVar17 = 4;\n        lVar25 = lVar25 + 4;\n        uVar24 = uVar23;\n      }" ({ "{") (expression_statement "uVar26 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar26 = *(uint *)(param_1 + 0x1c)" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar10 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(uint *)(param_1 + 0x20)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "lVar25 = lVar25 + 4;" (assignment_expression "lVar25 = lVar25 + 4" (identifier "lVar25") (= "=") (binary_expression "lVar25 + 4" (identifier "lVar25") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" (identifier "uVar24") (= "=") (identifier "uVar23")) (; ";")) (} "}")))) (labeled_statement "LAB_000329b6:\n      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (statement_identifier "LAB_000329b6") (: ":") (expression_statement "uVar18 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar18 = (uint)((ulonglong)lVar25 >> 0x20)" (identifier "uVar18") (= "=") (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar25 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar25")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "uVar23 = uVar24;" (assignment_expression "uVar23 = uVar24" (identifier "uVar23") (= "=") (identifier "uVar24")) (; ";")) (if_statement "if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25))" (( "(") (binary_expression "uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 < uVar18" (identifier "uVar10") (< "<") (identifier "uVar18")) (|| "||") (binary_expression "uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)" (binary_expression "uVar10 - uVar18" (identifier "uVar10") (- "-") (identifier "uVar18")) (< "<") (call_expression "(uint)(uVar26 < (uint)lVar25)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar26 < (uint)lVar25)" (( "(") (binary_expression "uVar26 < (uint)lVar25" (identifier "uVar26") (< "<") (cast_expression "(uint)lVar25" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar25"))) () ")"))))) () ")")) (compound_statement "{\nLAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);\n        if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }\n      }" ({ "{") (labeled_statement "LAB_00032a32:\n        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" (statement_identifier "LAB_00032a32") (: ":") (expression_statement "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);" (assignment_expression "iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" (identifier "iVar17") (= "=") (call_expression "FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" (identifier "FUN_0001c250") (argument_list "(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0)" (( "(") (identifier "param_1") (, ",") (binary_expression "(uVar23 - *(int *)(param_1 + 0x10)) - iVar17" (parenthesized_expression "(uVar23 - *(int *)(param_1 + 0x10))" (( "(") (binary_expression "uVar23 - *(int *)(param_1 + 0x10)" (identifier "uVar23") (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (- "-") (identifier "iVar17")) (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (iVar17 == 0) {\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);\n          warn(uVar11,local_4c);\n          return 0;\n        }" ({ "{") (expression_statement "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5);" (assignment_expression "uVar11 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" (identifier "dcgettext") (argument_list "(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"" (" """) (string_content "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar11,local_4c);" (call_expression "warn(uVar11,local_4c)" (identifier "warn") (argument_list "(uVar11,local_4c)" (( "(") (identifier "uVar11") (, ",") (identifier "local_4c") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" (else "else") (compound_statement "{\n      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;\n      iVar17 = 4;\n      local_4c = 0;\n      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;\n    }" ({ "{") (if_statement "if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;" (if "if") (parenthesized_expression "((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8))" (( "(") (binary_expression "(uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)" (parenthesized_expression "(uVar2 < uVar8)" (( "(") (binary_expression "uVar2 < uVar8" (identifier "uVar2") (< "<") (identifier "uVar8")) () ")")) (&& "&&") (parenthesized_expression "(uVar10 = uVar26, uVar26 - 1 < 8)" (( "(") (comma_expression "uVar10 = uVar26, uVar26 - 1 < 8" (assignment_expression "uVar10 = uVar26" (identifier "uVar10") (= "=") (identifier "uVar26")) (, ",") (binary_expression "uVar26 - 1 < 8" (binary_expression "uVar26 - 1" (identifier "uVar26") (- "-") (number_literal "1")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_0003296f;" (goto "goto") (statement_identifier "LAB_0003296f") (; ";"))) (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;" (if "if") (parenthesized_expression "(uVar24 < (uVar26 < 4))" (( "(") (binary_expression "uVar24 < (uVar26 < 4)" (identifier "uVar24") (< "<") (parenthesized_expression "(uVar26 < 4)" (( "(") (binary_expression "uVar26 < 4" (identifier "uVar26") (< "<") (number_literal "4")) () ")"))) () ")")) (goto_statement "goto LAB_00032a32;" (goto "goto") (statement_identifier "LAB_00032a32") (; ";"))) (} "}")))) (expression_statement "uVar26 = uVar23 + 2;" (assignment_expression "uVar26 = uVar23 + 2" (identifier "uVar26") (= "=") (binary_expression "uVar23 + 2" (identifier "uVar23") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar26 < uVar8) {\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }\n    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" (if "if") (parenthesized_expression "(uVar26 < uVar8)" (( "(") (binary_expression "uVar26 < uVar8" (identifier "uVar26") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n      iVar17 = 2;\nLAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);\n      if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }\n    }" ({ "{") (expression_statement "iVar17 = 2;" (assignment_expression "iVar17 = 2" (identifier "iVar17") (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_00032a8d:\n      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" (statement_identifier "LAB_00032a8d") (: ":") (expression_statement "sVar7 = (*DAT_00076b4c)(uVar23,iVar17);" (assignment_expression "sVar7 = (*DAT_00076b4c)(uVar23,iVar17)" (identifier "sVar7") (= "=") (call_expression "(*DAT_00076b4c)(uVar23,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar23,iVar17)" (( "(") (identifier "uVar23") (, ",") (identifier "iVar17") () ")")))) (; ";"))) (if_statement "if (sVar7 == 5) {\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" (if "if") (parenthesized_expression "(sVar7 == 5)" (( "(") (binary_expression "sVar7 == 5" (identifier "sVar7") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        uVar24 = uVar23 + 3;\n        if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }\n        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;\n        local_28 = 0;\n        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;\nLAB_00032df4:\n        iVar17 = 1;\nLAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);\n        if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }\n        uVar11 = *(undefined4 *)(param_1 + 8);\n        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar26 = (uint)bVar6;\n        goto LAB_00032fe2;\n      }" ({ "{") (expression_statement "uVar24 = uVar23 + 3;" (assignment_expression "uVar24 = uVar23 + 3" (identifier "uVar24") (= "=") (binary_expression "uVar23 + 3" (identifier "uVar23") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (uVar24 < uVar8) {\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" (if "if") (parenthesized_expression "(uVar24 < uVar8)" (( "(") (binary_expression "uVar24 < uVar8" (identifier "uVar24") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n          iVar17 = 1;\nLAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);\n          local_28 = (uint)bVar6;\n          if (uVar23 + 4 < uVar8) goto LAB_00032df4;\n          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;\nLAB_00032af4:\n          local_38 = uVar23 + 8;\n          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;\nLAB_00032b01:\n          iVar17 = 4;\nLAB_00032b06:\n          local_38 = uVar23 + 8;\n          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);\n          if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }\n          goto LAB_00032b1b;\n        }" ({ "{") (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" (identifier "iVar17") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00032abc:\n          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" (statement_identifier "LAB_00032abc") (: ":") (expression_statement "bVar6 = (*DAT_00076b4c)(uVar26,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar26,iVar17)" (identifier "bVar6") (= "=") (call_expression "(*DAT_00076b4c)(uVar26,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar26,iVar17)" (( "(") (identifier "uVar26") (, ",") (identifier "iVar17") () ")")))) (; ";"))) (expression_statement "local_28 = (uint)bVar6;" (assignment_expression "local_28 = (uint)bVar6" (identifier "local_28") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (; ";")) (if_statement "if (uVar23 + 4 < uVar8) goto LAB_00032df4;" (if "if") (parenthesized_expression "(uVar23 + 4 < uVar8)" (( "(") (binary_expression "uVar23 + 4 < uVar8" (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4")) (< "<") (identifier "uVar8")) () ")")) (goto_statement "goto LAB_00032df4;" (goto "goto") (statement_identifier "LAB_00032df4") (; ";"))) (if_statement "if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;" (if "if") (parenthesized_expression "((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8))" (( "(") (binary_expression "(uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" (parenthesized_expression "(uVar24 < uVar8)" (( "(") (binary_expression "uVar24 < uVar8" (identifier "uVar24") (< "<") (identifier "uVar8")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)" (( "(") (comma_expression "iVar17 = uVar8 - uVar24, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar24" (identifier "iVar17") (= "=") (binary_expression "uVar8 - uVar24" (identifier "uVar8") (- "-") (identifier "uVar24"))) (, ",") (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" (identifier "iVar17") (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_00032df9;" (goto "goto") (statement_identifier "LAB_00032df9") (; ";"))) (labeled_statement "LAB_00032af4:\n          local_38 = uVar23 + 8;" (statement_identifier "LAB_00032af4") (: ":") (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" (identifier "local_38") (= "=") (binary_expression "uVar23 + 8" (identifier "uVar23") (+ "+") (number_literal "8"))) (; ";"))) (if_statement "if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;" (if "if") (parenthesized_expression "(uVar8 <= uVar23 + 8)" (( "(") (binary_expression "uVar8 <= uVar23 + 8" (identifier "uVar8") (<= "<=") (binary_expression "uVar23 + 8" (identifier "uVar23") (+ "+") (number_literal "8"))) () ")")) (goto_statement "goto LAB_00032b1b;" (goto "goto") (statement_identifier "LAB_00032b1b") (; ";"))) (labeled_statement "LAB_00032b01:\n          iVar17 = 4;" (statement_identifier "LAB_00032b01") (: ":") (expression_statement "iVar17 = 4;" (assignment_expression "iVar17 = 4" (identifier "iVar17") (= "=") (number_literal "4")) (; ";"))) (labeled_statement "LAB_00032b06:\n          local_38 = uVar23 + 8;" (statement_identifier "LAB_00032b06") (: ":") (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" (identifier "local_38") (= "=") (binary_expression "uVar23 + 8" (identifier "uVar23") (+ "+") (number_literal "8"))) (; ";"))) (expression_statement "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);" (assignment_expression "iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17)" (identifier "iVar17") (= "=") (call_expression "(*DAT_00076b4c)(uVar23 + 4,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar23 + 4,iVar17)" (( "(") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4")) (, ",") (identifier "iVar17") () ")")))) (; ";")) (if_statement "if (iVar17 != 0) {\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar11 = *(undefined4 *)(param_1 + 8);\n            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\n            warn(uVar16,uVar11,iVar17);\n            return 0;\n          }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" (identifier "dcgettext") (argument_list "(0,"The %s section contains unsupported offset entry count: %u.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""The %s section contains unsupported offset entry count: %u.\n"" (" """) (string_content "The %s section contains unsupported offset entry count: %u.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar16,uVar11,iVar17);" (call_expression "warn(uVar16,uVar11,iVar17)" (identifier "warn") (argument_list "(uVar16,uVar11,iVar17)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar11") (, ",") (identifier "iVar17") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_00032b1b;" (goto "goto") (statement_identifier "LAB_00032b1b") (; ";")) (} "}"))) (if_statement "if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;" (if "if") (parenthesized_expression "((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8))" (( "(") (binary_expression "(uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" (parenthesized_expression "(uVar26 < uVar8)" (( "(") (binary_expression "uVar26 < uVar8" (identifier "uVar26") (< "<") (identifier "uVar8")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)" (( "(") (comma_expression "iVar17 = uVar8 - uVar26, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar26" (identifier "iVar17") (= "=") (binary_expression "uVar8 - uVar26" (identifier "uVar8") (- "-") (identifier "uVar26"))) (, ",") (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" (identifier "iVar17") (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_00032abc;" (goto "goto") (statement_identifier "LAB_00032abc") (; ";"))) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar8 <= uVar23 + 4) goto LAB_00032af4;" (if "if") (parenthesized_expression "(uVar8 <= uVar23 + 4)" (( "(") (binary_expression "uVar8 <= uVar23 + 4" (identifier "uVar8") (<= "<=") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4"))) () ")")) (goto_statement "goto LAB_00032af4;" (goto "goto") (statement_identifier "LAB_00032af4") (; ";"))) (labeled_statement "LAB_00032df4:\n        iVar17 = 1;" (statement_identifier "LAB_00032df4") (: ":") (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" (identifier "iVar17") (= "=") (number_literal "1")) (; ";"))) (labeled_statement "LAB_00032df9:\n        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" (statement_identifier "LAB_00032df9") (: ":") (expression_statement "bVar6 = (*DAT_00076b4c)(uVar24,iVar17);" (assignment_expression "bVar6 = (*DAT_00076b4c)(uVar24,iVar17)" (identifier "bVar6") (= "=") (call_expression "(*DAT_00076b4c)(uVar24,iVar17)" (parenthesized_expression "(*DAT_00076b4c)" (( "(") (pointer_expression "*DAT_00076b4c" (* "*") (identifier "DAT_00076b4c")) () ")")) (argument_list "(uVar24,iVar17)" (( "(") (identifier "uVar24") (, ",") (identifier "iVar17") () ")")))) (; ";"))) (if_statement "if (bVar6 == 0) {\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" (if "if") (parenthesized_expression "(bVar6 == 0)" (( "(") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_38 = uVar23 + 8;\n          if (local_38 < uVar8) goto LAB_00032b01;\n          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;\n          goto LAB_00032b06;\n        }" ({ "{") (expression_statement "local_38 = uVar23 + 8;" (assignment_expression "local_38 = uVar23 + 8" (identifier "local_38") (= "=") (binary_expression "uVar23 + 8" (identifier "uVar23") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (local_38 < uVar8) goto LAB_00032b01;" (if "if") (parenthesized_expression "(local_38 < uVar8)" (( "(") (binary_expression "local_38 < uVar8" (identifier "local_38") (< "<") (identifier "uVar8")) () ")")) (goto_statement "goto LAB_00032b01;" (goto "goto") (statement_identifier "LAB_00032b01") (; ";"))) (if_statement "if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))\n          goto LAB_00032b1b;" (if "if") (parenthesized_expression "((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))" (( "(") (binary_expression "(uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" (parenthesized_expression "(uVar8 <= uVar23 + 4)" (( "(") (binary_expression "uVar8 <= uVar23 + 4" (identifier "uVar8") (<= "<=") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4"))) () ")")) (|| "||") (parenthesized_expression "(iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U)" (( "(") (comma_expression "iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U" (assignment_expression "iVar17 = uVar8 - (uVar23 + 4)" (identifier "iVar17") (= "=") (binary_expression "uVar8 - (uVar23 + 4)" (identifier "uVar8") (- "-") (parenthesized_expression "(uVar23 + 4)" (( "(") (binary_expression "uVar23 + 4" (identifier "uVar23") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "7 < iVar17 - 1U" (number_literal "7") (< "<") (binary_expression "iVar17 - 1U" (identifier "iVar17") (- "-") (number_literal "1U")))) () ")"))) () ")")) (goto_statement "goto LAB_00032b1b;" (goto "goto") (statement_identifier "LAB_00032b1b") (; ";"))) (goto_statement "goto LAB_00032b06;" (goto "goto") (statement_identifier "LAB_00032b06") (; ";")) (} "}"))) (expression_statement "uVar11 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 8)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" (identifier "dcgettext") (argument_list "(0,"The %s section contains unsupported segment selector size: %d.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""The %s section contains unsupported segment selector size: %d.\n"" (" """) (string_content "The %s section contains unsupported segment selector size: %d.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar26 = (uint)bVar6;" (assignment_expression "uVar26 = (uint)bVar6" (identifier "uVar26") (= "=") (cast_expression "(uint)bVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar6"))) (; ";")) (goto_statement "goto LAB_00032fe2;" (goto "goto") (statement_identifier "LAB_00032fe2") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" (else "else") (if_statement "if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;" (if "if") (parenthesized_expression "((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8))" (( "(") (binary_expression "(uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" (parenthesized_expression "(uVar23 < uVar8)" (( "(") (binary_expression "uVar23 < uVar8" (identifier "uVar23") (< "<") (identifier "uVar8")) () ")")) (&& "&&") (parenthesized_expression "(iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)" (( "(") (comma_expression "iVar17 = uVar8 - uVar23, iVar17 - 1U < 8" (assignment_expression "iVar17 = uVar8 - uVar23" (identifier "iVar17") (= "=") (binary_expression "uVar8 - uVar23" (identifier "uVar8") (- "-") (identifier "uVar23"))) (, ",") (binary_expression "iVar17 - 1U < 8" (binary_expression "iVar17 - 1U" (identifier "iVar17") (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_00032a8d;" (goto "goto") (statement_identifier "LAB_00032a8d") (; ";"))))) (expression_statement "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" (identifier "dcgettext") (argument_list "(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Only DWARF version 5 debug_rnglists info is currently supported.\n"" (" """) (string_content "Only DWARF version 5 debug_rnglists info is currently supported.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar11);" (call_expression "warn(uVar11)" (identifier "warn") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (} "}")))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1(type_1 *section,void *file)

{
  type_2 *var_38;
  type_3 *var_15;
  type_2 *var_1;
  type_4 lVar4;
  type_3 dVar5;
  type_2 *var_26;
  char *var_6;
  type_5 var_34;
  type_6 var_37;
  type_5 var_2;
  type_5 *var_9;
  type_7 *var_18;
  type_3 *var_13;
  char *pcVar14;
  char *pcVar15;
  int var_39;
  type_7 *var_17;
  type_1 *extraout_ECX;
  type_1 *var_21;
  type_1 *extraout_ECX_00;
  size_t var_10;
  type_5 *var_14;
  type_8 *pcVar19;
  type_5 var_24;
  type_5 *var_16;
  size_t var_27;
  type_2 *var_33;
  type_1 *section_00;
  type_2 *var_25;
  type_9 var_32;
  void *in_stack_ffffffa4;
  type_10 local_4c;
  type_2 *var_28;
  type_2 *var_29;
  type_5 local_28;
  
  var_2 = (type_5)section->size;
  var_1 = section->start;
  var_24 = *(type_5 *)((int)&section->size + 4);
  var_6 = section->name;
  var_26 = var_1 + var_2;
  if (var_2 == 0) {
    pcVar14 = (char *)var_3(0,"\nThe %s section is empty.\n",5);
    var_4(pcVar14,var_6);
    return 0;
  }
  var_6 = var_5(var_6,"debug_rnglists");
  if (var_6 == (char *)0x0) {
    local_28 = 0;
    var_28 = var_1;
LAB_00032b1b:
    var_2 = var_7(in_stack_ffffffa4);
    if (var_2 != 0) {
      if (var_8 != 0) {
        var_9 = &var_12->num_range_lists;
        var_10 = 0;
        do {
          var_2 = *var_9;
          var_9 = var_9 + 0x14;
          var_10 = var_2 + var_10;
        } while (var_9 != &var_12[var_8].num_range_lists);
        if (var_10 != 0) {
          var_9 = (type_5 *)var_11(var_10 * 0xc);
          if (var_8 != 0) {
            var_18 = var_12 + var_8;
            var_17 = var_12;
            var_16 = var_9;
            do {
              var_2 = var_17->num_range_lists;
              if (var_2 != 0) {
                var_13 = var_17->range_lists;
                var_15 = var_13 + var_2;
                var_14 = var_16;
                do {
                  dVar5 = *var_13;
                  var_24 = *(type_5 *)((int)var_13 + 4);
                  var_13 = var_13 + 1;
                  var_14[2] = (type_5)var_17;
                  *var_14 = (type_5)dVar5;
                  var_14[1] = var_24;
                  var_14 = var_14 + 3;
                } while (var_13 != var_15);
                var_16 = var_16 + var_2 * 3;
              }
              var_17 = var_17 + 1;
            } while (var_18 != var_17);
          }
          var_19(var_9,var_10,0xc,range_entry_compar);
          if (var_20 == 0) {
            section_00 = (type_1 *)section->name;
            var_21 = extraout_ECX;
          }
          else {
            var_2 = *var_9;
            section_00 = (type_1 *)section->name;
            var_21 = (type_1 *)(var_2 | var_9[1]);
            if (var_21 != (type_1 *)0x0) {
              pcVar14 = (char *)var_3(0,"Range lists in %s section start at 0x%lx\n",5);
              var_22(pcVar14,section_00,var_2);
              section_00 = (type_1 *)section->name;
              var_21 = extraout_ECX_00;
            }
          }
          var_23(section_00,(type_6)&section->filename,var_21);
          pcVar14 = (char *)var_3(0,"    Offset   Begin    End\n",5);
          var_4(pcVar14);
          pcVar19 = display_debug_ranges_list;
          if (var_6 != (char *)0x0) {
            pcVar19 = display_debug_rnglists_list;
          }
          var_27 = 0;
          var_16 = var_9;
          var_29 = var_1;
          do {
            while( true ) {
              var_2 = local_28;
              if (var_6 == (char *)0x0) {
                var_2 = *(type_5 *)var_16[2];
              }
              var_24 = *var_16;
              var_25 = var_1 + var_24;
              if (6 < var_2 - 2) break;
              if ((var_25 < var_1) || (var_26 <= var_25)) {
                pcVar14 = (char *)var_3(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
                var_22(pcVar14,var_24,var_27);
              }
              else {
                var_34 = ((type_5 *)var_16[2])[5];
                if ((var_20 != 0) && (var_27 != 0)) {
                  if (var_28 < var_25) {
                    pcVar14 = section->name;
                    pcVar15 = (char *)var_3(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n"
                                                ,5);
                    var_22(pcVar15,(int)var_28 - (int)var_1,var_24,pcVar14);
                  }
                  else if (var_25 < var_28) {
                    if (var_25 == var_29) goto LAB_00032d5f;
                    pcVar14 = section->name;
                    pcVar15 = (char *)var_3(0,
                                                "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
                                                ,5);
                    var_22(pcVar15,(int)var_28 - (int)var_1,var_24,pcVar14);
                  }
                }
                (*pcVar19)(var_25,var_26,var_2,var_24,var_34);
                var_28 = var_25;
                var_29 = var_25;
              }
LAB_00032d5f:
              var_27 = var_27 + 1;
              var_16 = var_16 + 3;
              if (var_10 == var_27) goto LAB_00032e7c;
            }
            var_27 = var_27 + 1;
            var_16 = var_16 + 3;
            pcVar14 = (char *)var_3(0,
                                        "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"
                                        ,5);
            var_22(pcVar14,var_2,var_24);
          } while (var_10 != var_27);
LAB_00032e7c:
          var_30(10,*(type_11 **)PTR_stdout_00072fdc);
          var_31(var_9);
          return 1;
        }
      }
      var_6 = (char *)var_3(0,"No range lists in .debug_info section.\n",5);
      var_4(var_6);
      return 1;
    }
    var_6 = section->name;
    var_2 = 5;
    pcVar14 = (char *)var_3(0,
                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                                ,5);
LAB_00032fe2:
    var_22(pcVar14,var_6,var_2);
  }
  else {
    var_25 = var_1 + 4;
    if (var_25 < var_26) {
      var_34 = 4;
LAB_0003296f:
      var_32 = (*byte_get)(var_1,var_34);
      local_4c = (type_10)var_32;
      if (var_32 == 0xffffffff) {
        var_33 = var_1 + 0xc;
        if (var_33 < var_26) {
          var_39 = 8;
        }
        else {
          if ((var_26 <= var_25) || (7 < var_2 - 5)) {
            var_39 = 8;
            local_4c = 0;
            var_2 = (type_5)section->size;
            var_24 = *(type_5 *)((int)&section->size + 4);
            lVar4 = 0xc;
            goto LAB_000329b6;
          }
          var_39 = var_2 - 4;
        }
        var_32 = (*byte_get)(var_25,var_39);
        local_4c = (type_10)var_32;
        var_2 = (type_5)section->size;
        var_24 = *(type_5 *)((int)&section->size + 4);
        lVar4 = var_32 + 0xc;
        var_39 = 8;
      }
      else {
        var_2 = (type_5)section->size;
        var_24 = *(type_5 *)((int)&section->size + 4);
        var_39 = 4;
        lVar4 = var_32 + 4;
        var_33 = var_25;
      }
LAB_000329b6:
      var_34 = (type_5)((type_12)lVar4 >> 0x20);
      var_25 = var_33;
      if (var_24 < var_34 || var_24 - var_34 < (type_5)(var_2 < (type_5)lVar4)) {
LAB_00032a32:
        var_37 = var_35(section,var_36(var_25 + (-var_39 - (int)section->start)));
        if (var_37 == 0) {
          var_6 = (char *)var_3(0,
                                     "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                                     ,5);
          var_22(var_6,local_4c);
          return 0;
        }
      }
    }
    else {
      if ((var_1 < var_26) && (var_34 = var_2, var_2 - 1 < 8)) goto LAB_0003296f;
      var_39 = 4;
      local_4c = 0;
      if (var_24 < (var_2 < 4)) goto LAB_00032a32;
    }
    var_33 = var_25 + 2;
    if (var_33 < var_26) {
      var_39 = 2;
LAB_00032a8d:
      var_32 = (*byte_get)(var_25,var_39);
      if (var_32 == 5) {
        var_38 = var_25 + 3;
        if (var_38 < var_26) {
          var_39 = 1;
LAB_00032abc:
          var_32 = (*byte_get)(var_33,var_39);
          local_28 = (type_5)(type_13)var_32;
          if (var_25 + 4 < var_26) goto LAB_00032df4;
          if ((var_38 < var_26) && (var_39 = (int)var_26 - (int)var_38, var_39 - 1U < 8))
          goto LAB_00032df9;
LAB_00032af4:
          var_28 = var_25 + 8;
          if (var_26 <= var_25 + 8) goto LAB_00032b1b;
LAB_00032b01:
          var_39 = 4;
LAB_00032b06:
          var_28 = var_25 + 8;
          var_32 = (*byte_get)(var_25 + 4,var_39);
          if (var_32 != 0) {
            var_6 = section->name;
            pcVar14 = (char *)var_3(0,
                                        "The %s section contains unsupported offset entry count: %u.\n"
                                        ,5);
            var_22(pcVar14,var_6,(type_10)var_32);
            return 0;
          }
          goto LAB_00032b1b;
        }
        if ((var_33 < var_26) && (var_39 = (int)var_26 - (int)var_33, var_39 - 1U < 8))
        goto LAB_00032abc;
        local_28 = 0;
        if (var_26 <= var_25 + 4) goto LAB_00032af4;
LAB_00032df4:
        var_39 = 1;
LAB_00032df9:
        var_32 = (*byte_get)(var_38,var_39);
        if (var_32 == 0) {
          var_28 = var_25 + 8;
          if (var_28 < var_26) goto LAB_00032b01;
          if ((var_26 <= var_25 + 4) ||
             (var_39 = (int)var_26 - (int)(var_25 + 4), 7 < var_39 - 1U)) goto LAB_00032b1b;
          goto LAB_00032b06;
        }
        var_6 = section->name;
        pcVar14 = (char *)var_3(0,
                                    "The %s section contains unsupported segment selector size: %d.\n"
                                    ,5);
        var_2 = (type_5)(type_13)var_32;
        goto LAB_00032fe2;
      }
    }
    else if ((var_25 < var_26) && (var_39 = (int)var_26 - (int)var_25, var_39 - 1U < 8))
    goto LAB_00032a8d;
    var_6 = (char *)var_3(0,
                               "Only DWARF version 5 debug_rnglists info is currently supported.\n",
                               5);
    var_22(var_6);
  }
  return 0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 MASKED(int param_1)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  byte bVar6;
  short sVar7;
  uint uVar8;
  char *pcVar9;
  uint uVar10;
  undefined4 uVar11;
  int *piVar12;
  int iVar13;
  int *piVar14;
  char *pcVar15;
  undefined4 uVar16;
  int iVar17;
  uint uVar18;
  size_t __nmemb;
  int *piVar19;
  code *pcVar20;
  int *piVar21;
  size_t sVar22;
  uint uVar23;
  uint uVar24;
  longlong lVar25;
  uint uVar26;
  undefined4 local_4c;
  uint local_38;
  uint local_34;
  uint local_28;
  
  uVar26 = *(uint *)(param_1 + 0x1c);
  uVar2 = *(uint *)(param_1 + 0x10);
  uVar24 = *(uint *)(param_1 + 0x20);
  pcVar9 = *(char **)(param_1 + 8);
  uVar8 = uVar2 + uVar26;
  if (uVar26 == 0) {
    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar15,pcVar9);
    return 0;
  }
  pcVar9 = strstr(pcVar9,"debug_rnglists");
  if (pcVar9 == (char *)0x0) {
    local_28 = 0;
    local_38 = uVar2;
LAB_00032b1b:
    iVar17 = FUN_00032500();
    if (iVar17 != 0) {
      if (DAT_0007694c != 0) {
        piVar12 = (int *)(DAT_00076944 + 0x48);
        __nmemb = 0;
        do {
          iVar17 = *piVar12;
          piVar12 = piVar12 + 0x14;
          __nmemb = iVar17 + __nmemb;
        } while (piVar12 != (int *)(DAT_00076944 + 0x48 + DAT_0007694c * 0x50));
        if (__nmemb != 0) {
          piVar12 = (int *)xmalloc(__nmemb * 0xc);
          if (DAT_0007694c != 0) {
            iVar13 = DAT_0007694c * 0x50 + DAT_00076944;
            iVar17 = DAT_00076944;
            piVar21 = piVar12;
            do {
              iVar3 = *(int *)(iVar17 + 0x48);
              if (iVar3 != 0) {
                piVar14 = *(int **)(iVar17 + 0x44);
                piVar1 = piVar14 + iVar3 * 2;
                piVar19 = piVar21;
                do {
                  iVar4 = *piVar14;
                  iVar5 = piVar14[1];
                  piVar14 = piVar14 + 2;
                  piVar19[2] = iVar17;
                  *piVar19 = iVar4;
                  piVar19[1] = iVar5;
                  piVar19 = piVar19 + 3;
                } while (piVar14 != piVar1);
                piVar21 = piVar21 + iVar3 * 3;
              }
              iVar17 = iVar17 + 0x50;
            } while (iVar13 != iVar17);
          }
          qsort(piVar12,__nmemb,0xc,FUN_0001c860);
          if (DAT_00074140 != 0) {
            iVar17 = *piVar12;
            uVar11 = *(undefined4 *)(param_1 + 8);
            if (iVar17 != 0 || piVar12[1] != 0) {
              uVar16 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
              warn(uVar16,uVar11,iVar17);
            }
          }
          FUN_0001ec20();
          pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
          printf(pcVar15);
          pcVar20 = FUN_0001de70;
          if (pcVar9 != (char *)0x0) {
            pcVar20 = FUN_00021b80;
          }
          sVar22 = 0;
          piVar21 = piVar12;
          local_34 = uVar2;
          do {
            while( true ) {
              uVar26 = local_28;
              if (pcVar9 == (char *)0x0) {
                uVar26 = *(uint *)piVar21[2];
              }
              iVar17 = *piVar21;
              uVar24 = uVar2 + iVar17;
              if (6 < uVar26 - 2) break;
              if ((uVar24 < uVar2) || (uVar8 <= uVar24)) {
                uVar11 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
                warn(uVar11,iVar17,sVar22);
              }
              else {
                uVar23 = ((uint *)piVar21[2])[5];
                if ((DAT_00074140 != 0) && (sVar22 != 0)) {
                  if (local_38 < uVar24) {
                    uVar11 = *(undefined4 *)(param_1 + 8);
                    uVar16 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);
                  }
                  else if (uVar24 < local_38) {
                    if (uVar24 == local_34) goto LAB_00032d5f;
                    uVar11 = *(undefined4 *)(param_1 + 8);
                    uVar16 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
                    warn(uVar16,local_38 - uVar2,iVar17,uVar11);
                  }
                }
                (*pcVar20)(uVar24,uVar8,uVar26,iVar17,uVar23);
                local_38 = uVar24;
                local_34 = uVar24;
              }
LAB_00032d5f:
              sVar22 = sVar22 + 1;
              piVar21 = piVar21 + 3;
              if (__nmemb == sVar22) goto LAB_00032e7c;
            }
            sVar22 = sVar22 + 1;
            piVar21 = piVar21 + 3;
            uVar11 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
            warn(uVar11,uVar26,iVar17);
          } while (__nmemb != sVar22);
LAB_00032e7c:
          putc(10,*(FILE **)PTR_stdout_00072fdc);
          free(piVar12);
          return 1;
        }
      }
      pcVar9 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
      printf(pcVar9);
      return 1;
    }
    uVar11 = *(undefined4 *)(param_1 + 8);
    uVar26 = 5;
    uVar16 = dcgettext(0,
                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                       ,5);
LAB_00032fe2:
    warn(uVar16,uVar11,uVar26);
  }
  else {
    uVar23 = uVar2 + 4;
    if (uVar23 < uVar8) {
      uVar10 = 4;
LAB_0003296f:
      lVar25 = (*DAT_00076b4c)(uVar2,uVar10);
      local_4c = (undefined4)lVar25;
      if (lVar25 == 0xffffffff) {
        uVar24 = uVar2 + 0xc;
        if (uVar24 < uVar8) {
          iVar17 = 8;
        }
        else {
          if ((uVar8 <= uVar23) || (7 < uVar26 - 5)) {
            iVar17 = 8;
            local_4c = 0;
            uVar26 = *(uint *)(param_1 + 0x1c);
            uVar10 = *(uint *)(param_1 + 0x20);
            lVar25 = 0xc;
            goto LAB_000329b6;
          }
          iVar17 = uVar26 - 4;
        }
        lVar25 = (*DAT_00076b4c)(uVar23,iVar17);
        local_4c = (undefined4)lVar25;
        uVar26 = *(uint *)(param_1 + 0x1c);
        uVar10 = *(uint *)(param_1 + 0x20);
        lVar25 = lVar25 + 0xc;
        iVar17 = 8;
      }
      else {
        uVar26 = *(uint *)(param_1 + 0x1c);
        uVar10 = *(uint *)(param_1 + 0x20);
        iVar17 = 4;
        lVar25 = lVar25 + 4;
        uVar24 = uVar23;
      }
LAB_000329b6:
      uVar18 = (uint)((ulonglong)lVar25 >> 0x20);
      uVar23 = uVar24;
      if (uVar10 < uVar18 || uVar10 - uVar18 < (uint)(uVar26 < (uint)lVar25)) {
LAB_00032a32:
        iVar17 = FUN_0001c250(param_1,(uVar23 - *(int *)(param_1 + 0x10)) - iVar17,0);
        if (iVar17 == 0) {
          uVar11 = dcgettext(0,
                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                             ,5);
          warn(uVar11,local_4c);
          return 0;
        }
      }
    }
    else {
      if ((uVar2 < uVar8) && (uVar10 = uVar26, uVar26 - 1 < 8)) goto LAB_0003296f;
      iVar17 = 4;
      local_4c = 0;
      if (uVar24 < (uVar26 < 4)) goto LAB_00032a32;
    }
    uVar26 = uVar23 + 2;
    if (uVar26 < uVar8) {
      iVar17 = 2;
LAB_00032a8d:
      sVar7 = (*DAT_00076b4c)(uVar23,iVar17);
      if (sVar7 == 5) {
        uVar24 = uVar23 + 3;
        if (uVar24 < uVar8) {
          iVar17 = 1;
LAB_00032abc:
          bVar6 = (*DAT_00076b4c)(uVar26,iVar17);
          local_28 = (uint)bVar6;
          if (uVar23 + 4 < uVar8) goto LAB_00032df4;
          if ((uVar24 < uVar8) && (iVar17 = uVar8 - uVar24, iVar17 - 1U < 8)) goto LAB_00032df9;
LAB_00032af4:
          local_38 = uVar23 + 8;
          if (uVar8 <= uVar23 + 8) goto LAB_00032b1b;
LAB_00032b01:
          iVar17 = 4;
LAB_00032b06:
          local_38 = uVar23 + 8;
          iVar17 = (*DAT_00076b4c)(uVar23 + 4,iVar17);
          if (iVar17 != 0) {
            uVar11 = *(undefined4 *)(param_1 + 8);
            uVar16 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);
            warn(uVar16,uVar11,iVar17);
            return 0;
          }
          goto LAB_00032b1b;
        }
        if ((uVar26 < uVar8) && (iVar17 = uVar8 - uVar26, iVar17 - 1U < 8)) goto LAB_00032abc;
        local_28 = 0;
        if (uVar8 <= uVar23 + 4) goto LAB_00032af4;
LAB_00032df4:
        iVar17 = 1;
LAB_00032df9:
        bVar6 = (*DAT_00076b4c)(uVar24,iVar17);
        if (bVar6 == 0) {
          local_38 = uVar23 + 8;
          if (local_38 < uVar8) goto LAB_00032b01;
          if ((uVar8 <= uVar23 + 4) || (iVar17 = uVar8 - (uVar23 + 4), 7 < iVar17 - 1U))
          goto LAB_00032b1b;
          goto LAB_00032b06;
        }
        uVar11 = *(undefined4 *)(param_1 + 8);
        uVar16 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);
        uVar26 = (uint)bVar6;
        goto LAB_00032fe2;
      }
    }
    else if ((uVar23 < uVar8) && (iVar17 = uVar8 - uVar23, iVar17 - 1U < 8)) goto LAB_00032a8d;
    uVar11 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);
    warn(uVar11);
  }
  return 0;
}

