
int display_debug_ranges(dwarf_section *section,void *file)

{
  uchar *puVar1;
  debug_info *pdVar2;
  uchar *puVar3;
  uchar *puVar4;
  dwarf_vma dVar5;
  undefined8 uVar6;
  bfd_boolean bVar7;
  uint uVar8;
  uint uVar9;
  char *pcVar10;
  elf_vma eVar11;
  uint *puVar12;
  dwarf_vma *__base;
  dwarf_vma *pdVar13;
  dwarf_vma *pdVar14;
  char *pcVar15;
  code *pcVar16;
  char *pcVar17;
  ulong uVar18;
  uchar *puVar19;
  long lVar20;
  dwarf_vma *pdVar21;
  dwarf_section *section_1;
  dwarf_section *extraout_RDX;
  int iVar22;
  int iVar23;
  dwarf_vma *pdVar24;
  debug_info *pdVar25;
  debug_info *pdVar26;
  uint uVar27;
  dwarf_section *section_00;
  uint uVar28;
  dwarf_size_type dVar29;
  uchar *puVar30;
  uchar *local_80;
  
  puVar4 = section->start;
  uVar18 = section->size;
  pcVar10 = section->name;
  puVar3 = puVar4 + uVar18;
  if (uVar18 == 0) {
    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar15,pcVar10);
    return 0;
  }
  pcVar10 = strstr(pcVar10,"debug_rnglists");
  if (pcVar10 == (char *)0x0) {
    uVar28 = 0;
    local_80 = puVar4;
  }
  else {
    puVar19 = puVar4 + 4;
    iVar23 = (int)uVar18;
    if (puVar19 < puVar3) {
      iVar22 = 4;
LAB_001511e7:
      eVar11 = (*byte_get)(puVar4,iVar22);
      if (eVar11 == 0xffffffff) {
        puVar30 = puVar4 + 0xc;
        if (puVar30 < puVar3) {
          iVar22 = 8;
        }
        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {
          dVar29 = section->size;
          uVar18 = 0xc;
          eVar11 = 0;
          lVar20 = 8;
          goto LAB_0015120e;
        }
        eVar11 = (*byte_get)(puVar19,iVar22);
        dVar29 = section->size;
        uVar18 = eVar11 + 0xc;
        lVar20 = 8;
      }
      else {
        dVar29 = section->size;
        uVar18 = eVar11 + 4;
        lVar20 = 4;
        puVar30 = puVar19;
      }
LAB_0015120e:
      puVar19 = puVar30;
      if (dVar29 < uVar18) {
LAB_00151283:
        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));
        if (bVar7 == 0) {
          pcVar10 = (char *)dcgettext(0,
                                      "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                                      ,5);
          warn(pcVar10,eVar11);
          return 0;
        }
      }
    }
    else {
      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;
      lVar20 = 4;
      eVar11 = 0;
      if (uVar18 < 4) goto LAB_00151283;
    }
    puVar30 = puVar19 + 2;
    iVar23 = (int)puVar3;
    if (puVar30 < puVar3) {
      iVar22 = 2;
    }
    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))
    goto LAB_00151229;
    eVar11 = (*byte_get)(puVar19,iVar22);
    if ((short)eVar11 != 5) {
LAB_00151229:
      pcVar10 = (char *)dcgettext(0,
                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"
                                  ,5);
      warn(pcVar10);
      return 0;
    }
    puVar1 = puVar19 + 3;
    if (puVar1 < puVar3) {
      eVar11 = (*byte_get)(puVar30,1);
      uVar28 = (uint)eVar11;
      if (puVar19 + 4 < puVar3) {
LAB_001514c7:
        iVar22 = 1;
      }
      else {
        iVar22 = iVar23 - (int)puVar1;
        if (7 < iVar22 - 1U) goto LAB_0015133f;
      }
      eVar11 = (*byte_get)(puVar1,iVar22);
      if ((char)eVar11 != '\0') {
        pcVar10 = section->name;
        pcVar15 = (char *)dcgettext(0,
                                    "The %s section contains unsupported segment selector size: %d.\n"
                                    ,5);
        uVar18 = eVar11 & 0xff;
        goto LAB_001518df;
      }
      local_80 = puVar19 + 8;
      if (local_80 < puVar3) goto LAB_0015134d;
      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))
      goto LAB_00151366;
    }
    else {
      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {
        eVar11 = (*byte_get)(puVar30,iVar22);
        uVar28 = (uint)eVar11;
      }
      else {
        uVar28 = 0;
      }
      if (puVar19 + 4 < puVar3) goto LAB_001514c7;
LAB_0015133f:
      local_80 = puVar19 + 8;
      if (puVar3 <= puVar19 + 8) goto LAB_00151366;
LAB_0015134d:
      iVar23 = 4;
    }
    local_80 = puVar19 + 8;
    eVar11 = (*byte_get)(puVar19 + 4,iVar23);
    if ((int)eVar11 != 0) {
      pcVar10 = section->name;
      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",
                                  5);
      uVar18 = eVar11 & 0xffffffff;
LAB_001518df:
      warn(pcVar15,pcVar10,uVar18);
      return 0;
    }
  }
LAB_00151366:
  uVar8 = load_debug_info(file);
  if (uVar8 == 0) {
    pcVar10 = section->name;
    pcVar15 = (char *)dcgettext(0,
                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                                ,5);
    warn(pcVar15,pcVar10);
    return 0;
  }
  if (num_debug_info_entries == 0) {
LAB_00151839:
    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
    printf(pcVar10);
    return 1;
  }
  uVar18 = 0;
  puVar12 = &debug_information->num_range_lists;
  do {
    uVar8 = *puVar12;
    puVar12 = puVar12 + 0x1a;
    uVar8 = uVar8 + (int)uVar18;
    uVar18 = (ulong)uVar8;
  } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12);
  if (uVar8 == 0) goto LAB_00151839;
  __base = (dwarf_vma *)xmalloc(uVar18 << 4);
  if (num_debug_info_entries != 0) {
    uVar9 = num_debug_info_entries - 1;
    pdVar2 = debug_information + 1;
    pdVar14 = __base;
    pdVar25 = debug_information;
    pdVar26 = pdVar2;
    while( true ) {
      if (pdVar25->num_range_lists != 0) {
        pdVar21 = pdVar25->range_lists;
        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;
        pdVar13 = pdVar14;
        do {
          dVar5 = *pdVar21;
          pdVar14 = pdVar13 + 2;
          pdVar13[1] = (dwarf_vma)pdVar25;
          pdVar21 = pdVar21 + 1;
          *pdVar13 = dVar5;
          pdVar13 = pdVar14;
        } while (pdVar24 != pdVar14);
      }
      if (pdVar26 == pdVar2 + uVar9) break;
      pdVar25 = pdVar26;
      pdVar26 = pdVar26 + 1;
    }
  }
  qsort(__base,uVar18,0x10,range_entry_compar);
  section_1 = (dwarf_section *)(ulong)(uint)dwarf_check;
  if (dwarf_check != 0) {
    section_00 = (dwarf_section *)section->name;
    dVar5 = *__base;
    if (dVar5 == 0) goto LAB_0015155c;
    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
    warn(pcVar15,section_00,dVar5);
    section_1 = extraout_RDX;
  }
  section_00 = (dwarf_section *)section->name;
LAB_0015155c:
  introduce(section_00,(int)section + 0x18,section_1);
  pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
  printf(pcVar15);
  pcVar16 = display_debug_ranges_list;
  if (pcVar10 != (char *)0x0) {
    pcVar16 = display_debug_rnglists_list;
  }
  uVar9 = 0;
  puVar19 = puVar4;
  pdVar14 = __base;
  do {
    while( true ) {
      uVar27 = uVar28 & 0xff;
      if (pcVar10 == (char *)0x0) {
        uVar27 = *(uint *)pdVar14[1];
      }
      dVar5 = *pdVar14;
      puVar30 = puVar4 + dVar5;
      if (6 < uVar27 - 2) break;
      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {
        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
        warn(pcVar15,dVar5,(ulong)uVar9);
      }
      else {
        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);
        if ((dwarf_check != 0) && (uVar9 != 0)) {
          if (local_80 < puVar30) {
            pcVar15 = section->name;
            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);
          }
          else if (puVar30 < local_80) {
            if (puVar30 == puVar19) goto LAB_0015168b;
            pcVar15 = section->name;
            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);
          }
        }
        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);
        puVar19 = puVar30;
        local_80 = puVar30;
      }
LAB_0015168b:
      uVar9 = uVar9 + 1;
      pdVar14 = pdVar14 + 2;
      if (uVar8 == uVar9) goto LAB_00151700;
    }
    uVar9 = uVar9 + 1;
    pdVar14 = pdVar14 + 2;
    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
    warn(pcVar15,(ulong)uVar27,dVar5);
  } while (uVar8 != uVar9);
LAB_00151700:
  putc(10,stdout);
  free(__base);
  return 1;
}



undefined4 FUN_00151190(long param_1,undefined8 param_2)

{
  ulong uVar1;
  ulong uVar2;
  long lVar3;
  byte bVar4;
  short sVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  char *pcVar10;
  long lVar11;
  undefined8 uVar12;
  int *piVar13;
  long *__base;
  long *plVar14;
  long *plVar15;
  char *pcVar16;
  code *pcVar17;
  undefined8 uVar18;
  undefined8 uVar19;
  ulong uVar20;
  long lVar21;
  long *plVar22;
  ulong uVar23;
  long *plVar24;
  long lVar25;
  uint uVar26;
  ulong uVar27;
  ulong uVar28;
  ulong local_80;
  
  uVar2 = *(ulong *)(param_1 + 0x20);
  uVar20 = *(ulong *)(param_1 + 0x30);
  pcVar10 = *(char **)(param_1 + 0x10);
  uVar1 = uVar2 + uVar20;
  if (uVar20 == 0) {
    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar16,pcVar10);
    return 0;
  }
  pcVar10 = strstr(pcVar10,"debug_rnglists");
  if (pcVar10 == (char *)0x0) {
    uVar6 = 0;
    local_80 = uVar2;
  }
  else {
    uVar28 = uVar2 + 4;
    if (uVar28 < uVar1) {
      uVar23 = 4;
LAB_001511e7:
      lVar11 = (*DAT_00196f88)(uVar2,uVar23);
      if (lVar11 == 0xffffffff) {
        uVar23 = uVar2 + 0xc;
        if (uVar23 < uVar1) {
          lVar11 = 8;
        }
        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {
          uVar27 = *(ulong *)(param_1 + 0x30);
          uVar20 = 0xc;
          lVar11 = 0;
          lVar21 = 8;
          goto LAB_0015120e;
        }
        lVar11 = (*DAT_00196f88)(uVar28,lVar11);
        uVar27 = *(ulong *)(param_1 + 0x30);
        uVar20 = lVar11 + 0xc;
        lVar21 = 8;
      }
      else {
        uVar27 = *(ulong *)(param_1 + 0x30);
        uVar20 = lVar11 + 4;
        lVar21 = 4;
        uVar23 = uVar28;
      }
LAB_0015120e:
      uVar28 = uVar23;
      if (uVar27 < uVar20) {
LAB_00151283:
        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);
        if (iVar8 == 0) {
          uVar12 = dcgettext(0,
                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                             ,5);
          warn(uVar12,lVar11);
          return 0;
        }
      }
    }
    else {
      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {
        uVar23 = uVar20 & 0xffffffff;
        goto LAB_001511e7;
      }
      lVar21 = 4;
      lVar11 = 0;
      if (uVar20 < 4) goto LAB_00151283;
    }
    uVar20 = uVar28 + 2;
    if (uVar20 < uVar1) {
      lVar11 = 2;
    }
    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))
    goto LAB_00151229;
    sVar5 = (*DAT_00196f88)(uVar28,lVar11);
    if (sVar5 != 5) {
LAB_00151229:
      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);
      warn(uVar12);
      return 0;
    }
    uVar23 = uVar28 + 3;
    if (uVar23 < uVar1) {
      uVar6 = (*DAT_00196f88)(uVar20,1);
      if (uVar28 + 4 < uVar1) {
LAB_001514c7:
        lVar11 = 1;
      }
      else {
        lVar11 = uVar1 - uVar23;
        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;
      }
      bVar4 = (*DAT_00196f88)(uVar23,lVar11);
      if (bVar4 != 0) {
        uVar12 = *(undefined8 *)(param_1 + 0x10);
        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);
        uVar7 = (uint)bVar4;
        goto LAB_001518df;
      }
      local_80 = uVar28 + 8;
      if (local_80 < uVar1) goto LAB_0015134d;
      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))
      goto LAB_00151366;
    }
    else {
      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {
        uVar6 = (*DAT_00196f88)(uVar20);
      }
      else {
        uVar6 = 0;
      }
      if (uVar28 + 4 < uVar1) goto LAB_001514c7;
LAB_0015133f:
      local_80 = uVar28 + 8;
      if (uVar1 <= uVar28 + 8) goto LAB_00151366;
LAB_0015134d:
      lVar11 = 4;
    }
    local_80 = uVar28 + 8;
    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);
    if (uVar7 != 0) {
      uVar12 = *(undefined8 *)(param_1 + 0x10);
      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);
LAB_001518df:
      warn(uVar19,uVar12,uVar7);
      return 0;
    }
  }
LAB_00151366:
  iVar8 = FUN_00150dc0(param_2);
  if (iVar8 == 0) {
    uVar12 = *(undefined8 *)(param_1 + 0x10);
    uVar19 = dcgettext(0,
                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                       ,5);
    warn(uVar19,uVar12);
    return 0;
  }
  if (DAT_00196f14 == 0) {
LAB_00151839:
    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
    printf(pcVar10);
    return 1;
  }
  uVar20 = 0;
  piVar13 = (int *)(DAT_00196f08 + 0x60);
  do {
    iVar8 = *piVar13;
    piVar13 = piVar13 + 0x1a;
    uVar7 = iVar8 + (int)uVar20;
    uVar20 = (ulong)uVar7;
  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);
  if (uVar7 == 0) goto LAB_00151839;
  __base = (long *)FUN_001594b0(uVar20 << 4);
  if (DAT_00196f14 != 0) {
    uVar9 = DAT_00196f14 - 1;
    lVar11 = DAT_00196f08 + 0x68;
    plVar15 = __base;
    lVar21 = DAT_00196f08;
    lVar25 = lVar11;
    while( true ) {
      if (*(int *)(lVar21 + 0x60) != 0) {
        plVar22 = *(long **)(lVar21 + 0x58);
        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;
        plVar14 = plVar15;
        do {
          lVar3 = *plVar22;
          plVar15 = plVar14 + 2;
          plVar14[1] = lVar21;
          plVar22 = plVar22 + 1;
          *plVar14 = lVar3;
          plVar14 = plVar15;
        } while (plVar24 != plVar15);
      }
      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;
      lVar21 = lVar25;
      lVar25 = lVar25 + 0x68;
    }
  }
  qsort(__base,uVar20,0x10,FUN_0013cdc0);
  if (DAT_001946e0 != 0) {
    uVar12 = *(undefined8 *)(param_1 + 0x10);
    lVar11 = *__base;
    if (lVar11 == 0) goto LAB_0015155c;
    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
    warn(uVar19,uVar12,lVar11);
  }
  uVar12 = *(undefined8 *)(param_1 + 0x10);
LAB_0015155c:
  FUN_0013ed70(uVar12,param_1 + 0x18);
  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
  printf(pcVar16);
  pcVar17 = FUN_0013e280;
  if (pcVar10 != (char *)0x0) {
    pcVar17 = FUN_001419e0;
  }
  uVar9 = 0;
  uVar20 = uVar2;
  plVar15 = __base;
  do {
    while( true ) {
      uVar26 = uVar6 & 0xff;
      if (pcVar10 == (char *)0x0) {
        uVar26 = *(uint *)plVar15[1];
      }
      lVar11 = *plVar15;
      uVar28 = uVar2 + lVar11;
      if (6 < uVar26 - 2) break;
      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {
        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
        warn(uVar12,lVar11,uVar9);
      }
      else {
        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);
        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {
          if (local_80 < uVar28) {
            uVar19 = *(undefined8 *)(param_1 + 0x10);
            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
            warn(uVar18,local_80 - uVar2,lVar11,uVar19);
          }
          else if (uVar28 < local_80) {
            if (uVar28 == uVar20) goto LAB_0015168b;
            uVar19 = *(undefined8 *)(param_1 + 0x10);
            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
            warn(uVar18,local_80 - uVar2,lVar11,uVar19);
          }
        }
        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);
        uVar20 = uVar28;
        local_80 = uVar28;
      }
LAB_0015168b:
      uVar9 = uVar9 + 1;
      plVar15 = plVar15 + 2;
      if (uVar7 == uVar9) goto LAB_00151700;
    }
    uVar9 = uVar9 + 1;
    plVar15 = plVar15 + 2;
    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
    warn(uVar12,uVar26,lVar11);
  } while (uVar7 != uVar9);
LAB_00151700:
  putc(10,stdout);
  free(__base);
  return 1;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV RBX,qword ptr [RDI + 0x20]
MOV R13,qword ptr [RDI + 0x30]
MOV R14,qword ptr [RDI + 0x10]
LEA RBP,[RBX + R13*0x1]
TEST R13,R13
JZ 0x00151458
MOV R15,RDI
MOV R12,RSI
LEA RSI,[0x182601]
MOV RDI,R14
CALL 0x00107420
MOV qword ptr [RSP],RAX
TEST RAX,RAX
JZ 0x00151768
LEA R14,[RBX + 0x4]
CMP R14,RBP
JNC 0x00151260
MOV ESI,0x4
MOV RDI,RBX
CALL qword ptr [0x00196f88]
MOV RCX,RAX
MOV EAX,0xffffffff
CMP RCX,RAX
JZ 0x001517ab
MOV R13,qword ptr [R15 + 0x30]
LEA RAX,[RCX + 0x4]
MOV EDX,0x4
CMP R13,RAX
JC 0x00151283
LEA R13,[R14 + 0x2]
CMP R13,RBP
JC 0x001512e0
CMP R14,RBP
JC 0x00151480
MOV EDX,0x5
LEA RSI,[0x17fd18]
XOR EDI,EDI
XOR R13D,R13D
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001550d0
ADD RSP,0x58
MOV EAX,R13D
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP RBX,RBP
JNC 0x00151272
LEA EAX,[R13 + -0x1]
CMP EAX,0x7
JBE 0x00151938
MOV EAX,0x4
MOV EDX,0x4
XOR ECX,ECX
CMP R13,RAX
JNC 0x00151213
MOV RSI,R14
SUB RSI,qword ptr [R15 + 0x20]
MOV RDI,R15
MOV qword ptr [RSP + 0x8],RCX
SUB RSI,RDX
CALL 0x0013b2b0
MOV RCX,qword ptr [RSP + 0x8]
TEST EAX,EAX
MOV R13D,EAX
JNZ 0x00151213
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x17fcb8]
MOV qword ptr [RSP],RCX
CALL 0x00107130
MOV RCX,qword ptr [RSP]
MOV RDI,RAX
XOR EAX,EAX
MOV RSI,RCX
CALL 0x001550d0
JMP 0x00151249
MOV ESI,0x2
MOV RDI,R14
CALL qword ptr [0x00196f88]
CMP AX,0x5
JNZ 0x00151229
LEA RCX,[R14 + 0x3]
CMP RCX,RBP
JNC 0x001514a0
MOV qword ptr [RSP + 0x8],RCX
MOV RDI,R13
MOV ESI,0x1
CALL qword ptr [0x00196f88]
LEA RDX,[R14 + 0x4]
MOV RCX,qword ptr [RSP + 0x8]
CMP RBP,RDX
MOV R13D,EAX
JA 0x001514c7
MOV RSI,RBP
SUB RSI,RCX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x001514cc
LEA RAX,[R14 + 0x8]
MOV qword ptr [RSP + 0x8],RAX
CMP RBP,RAX
JBE 0x00151366
MOV ESI,0x4
MOV RDI,RDX
CALL qword ptr [0x00196f88]
MOV R14,RAX
TEST EAX,EAX
JNZ 0x001518f4
MOV RDI,R12
CALL 0x00150dc0
TEST EAX,EAX
JZ 0x00151861
MOV EDX,dword ptr [0x00196f14]
TEST EDX,EDX
JZ 0x00151839
SUB EDX,0x1
MOV RCX,qword ptr [0x00196f08]
XOR R12D,R12D
LEA RSI,[RDX + RDX*0x2]
LEA RDX,[RDX + RSI*0x4]
LEA RAX,[RCX + 0x60]
LEA RDX,[RCX + RDX*0x8 + 0xc8]
NOP dword ptr [RAX]
MOV R14D,dword ptr [RAX]
ADD RAX,0x68
ADD R14D,R12D
MOV R12D,R14D
CMP RDX,RAX
JNZ 0x001513a8
TEST R12D,R12D
JZ 0x00151839
MOV RDI,R12
SHL RDI,0x4
CALL 0x001594b0
MOV qword ptr [RSP + 0x28],RAX
MOV EAX,dword ptr [0x00196f14]
TEST EAX,EAX
JZ 0x00151520
SUB EAX,0x1
MOV RDI,qword ptr [0x00196f08]
LEA RDX,[RAX + RAX*0x2]
LEA RAX,[RAX + RDX*0x4]
LEA R8,[RDI + 0x68]
LEA R9,[R8 + RAX*0x8]
MOV RAX,qword ptr [RSP + 0x28]
NOP dword ptr [RAX]
MOV ECX,dword ptr [RDI + 0x60]
TEST ECX,ECX
JZ 0x00151440
LEA ESI,[RCX + -0x1]
MOV RDX,qword ptr [RDI + 0x58]
ADD RSI,0x1
SHL RSI,0x4
ADD RSI,RAX
NOP dword ptr [RAX]
MOV RCX,qword ptr [RDX]
ADD RAX,0x10
MOV qword ptr [RAX + -0x8],RDI
ADD RDX,0x8
MOV qword ptr [RAX + -0x10],RCX
CMP RSI,RAX
JNZ 0x00151428
MOV RDI,R8
CMP R8,R9
JZ 0x00151520
ADD R8,0x68
JMP 0x00151408
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x18087b]
CALL 0x00107130
MOV RSI,R14
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
JMP 0x00151249
MOV RSI,RBP
SUB RSI,R14
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x001512e5
JMP 0x00151229
CMP R13,RBP
JNC 0x001514b7
MOV RSI,RBP
SUB RSI,R13
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00151910
LEA RDX,[R14 + 0x4]
XOR R13D,R13D
CMP RDX,RBP
JNC 0x0015133f
MOV ESI,0x1
MOV qword ptr [RSP + 0x8],RDX
MOV RDI,RCX
CALL qword ptr [0x00196f88]
MOV RDX,qword ptr [RSP + 0x8]
TEST AL,AL
JNZ 0x001518bd
LEA RAX,[R14 + 0x8]
MOV qword ptr [RSP + 0x8],RAX
CMP RAX,RBP
JC 0x0015134d
CMP RBP,RDX
JBE 0x00151366
MOV RSI,RBP
SUB RSI,RDX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JA 0x00151366
JMP 0x00151352
MOV RDI,qword ptr [RSP + 0x28]
MOV EDX,0x10
LEA RCX,[0x13cdc0]
MOV RSI,R12
CALL 0x001070d0
MOV EDX,dword ptr [0x001946e0]
TEST EDX,EDX
JZ 0x001517a2
MOV RAX,qword ptr [RSP + 0x28]
MOV R12,qword ptr [R15 + 0x10]
MOV RCX,qword ptr [RAX]
TEST RCX,RCX
JNZ 0x00151775
LEA RSI,[R15 + 0x18]
MOV RDI,R12
CALL 0x0013ed70
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x182279]
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
CMP qword ptr [RSP],0x0
MOV qword ptr [RSP + 0x40],R15
LEA RDX,[0x1419e0]
LEA RAX,[0x13e280]
MOV R12,qword ptr [RSP + 0x28]
MOV RCX,RBX
MOV dword ptr [RSP + 0x10],R14D
CMOVNZ RAX,RDX
XOR R9D,R9D
MOV R15D,R9D
MOV qword ptr [RSP + 0x20],RAX
MOVZX EAX,R13B
MOV dword ptr [RSP + 0x1c],EAX
JMP 0x0015169a
MOV R11D,dword ptr [RSP + 0x1c]
MOV R14,qword ptr [R12]
LEA EAX,[R11 + -0x2]
LEA R13,[RBX + R14*0x1]
CMP EAX,0x6
JA 0x001516b8
CMP RBX,R13
JA 0x00151730
CMP RBP,R13
JBE 0x00151730
MOV EAX,dword ptr [0x001946e0]
MOV R8,qword ptr [RDX + 0x18]
TEST EAX,EAX
JZ 0x00151670
TEST R15D,R15D
JZ 0x00151670
CMP R13,qword ptr [RSP + 0x8]
JA 0x001517e5
JNC 0x00151670
MOV qword ptr [RSP + 0x38],R8
MOV dword ptr [RSP + 0x30],R11D
CMP R13,RCX
JZ 0x0015168b
MOV RAX,qword ptr [RSP + 0x40]
MOV EDX,0x5
LEA RSI,[0x17fe98]
XOR EDI,EDI
MOV RCX,qword ptr [RAX + 0x10]
MOV qword ptr [RSP + 0x48],RCX
CALL 0x00107130
MOV RSI,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x48]
MOV RDX,R14
MOV RDI,RAX
XOR EAX,EAX
SUB RSI,RBX
CALL 0x001550d0
MOV R8,qword ptr [RSP + 0x38]
MOV R11D,dword ptr [RSP + 0x30]
MOV RCX,R14
MOV EDX,R11D
MOV RSI,RBP
MOV RDI,R13
MOV RAX,qword ptr [RSP + 0x20]
CALL RAX
MOV qword ptr [RSP + 0x8],R13
MOV RCX,R13
ADD R15D,0x1
ADD R12,0x10
CMP dword ptr [RSP + 0x10],R15D
JZ 0x00151700
CMP qword ptr [RSP],0x0
MOV RDX,qword ptr [R12 + 0x8]
JNZ 0x001515d0
MOV R11D,dword ptr [RDX]
JMP 0x001515d5
MOV EDX,0x5
XOR EDI,EDI
MOV qword ptr [RSP + 0x38],RCX
ADD R15D,0x1
LEA RSI,[0x17fdf8]
MOV dword ptr [RSP + 0x30],R11D
ADD R12,0x10
CALL 0x00107130
MOV R11D,dword ptr [RSP + 0x30]
MOV RDX,R14
MOV RDI,RAX
XOR EAX,EAX
MOV ESI,R11D
CALL 0x001550d0
MOV RCX,qword ptr [RSP + 0x38]
CMP dword ptr [RSP + 0x10],R15D
JNZ 0x0015169a
NOP
MOV RSI,qword ptr [0x001923a0]
MOV EDI,0xa
MOV R13D,0x1
CALL 0x00107270
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00107030
JMP 0x00151249
MOV EDX,0x5
LEA RSI,[0x17fe38]
XOR EDI,EDI
MOV qword ptr [RSP + 0x30],RCX
CALL 0x00107130
MOV EDX,R15D
MOV RSI,R14
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001550d0
MOV RCX,qword ptr [RSP + 0x30]
JMP 0x0015168b
MOV qword ptr [RSP + 0x8],RBX
XOR R13D,R13D
JMP 0x00151366
MOV EDX,0x5
LEA RSI,[0x17fdc8]
XOR EDI,EDI
MOV qword ptr [RSP + 0x10],RCX
CALL 0x00107130
MOV RCX,qword ptr [RSP + 0x10]
MOV RSI,R12
MOV RDI,RAX
XOR EAX,EAX
MOV RDX,RCX
CALL 0x001550d0
MOV R12,qword ptr [R15 + 0x10]
JMP 0x0015155c
LEA RDX,[RBX + 0xc]
CMP RDX,RBP
JC 0x0015188d
CMP R14,RBP
JNC 0x001517cd
LEA RSI,[R13 + -0x4]
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00151892
MOV R14,RDX
MOV R13,qword ptr [R15 + 0x30]
MOV EAX,0xc
XOR ECX,ECX
MOV EDX,0x8
JMP 0x0015120e
MOV RAX,qword ptr [RSP + 0x40]
MOV EDX,0x5
LEA RSI,[0x17fe68]
XOR EDI,EDI
MOV qword ptr [RSP + 0x48],R8
MOV RCX,qword ptr [RAX + 0x10]
MOV dword ptr [RSP + 0x38],R11D
MOV qword ptr [RSP + 0x30],RCX
CALL 0x00107130
MOV RSI,qword ptr [RSP + 0x8]
MOV RCX,qword ptr [RSP + 0x30]
MOV RDX,R14
MOV RDI,RAX
XOR EAX,EAX
SUB RSI,RBX
CALL 0x001550d0
MOV R11D,dword ptr [RSP + 0x38]
MOV R8,qword ptr [RSP + 0x48]
JMP 0x00151670
MOV EDX,0x5
LEA RSI,[0x17fda0]
XOR EDI,EDI
MOV R13D,0x1
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
JMP 0x00151249
MOV RBX,qword ptr [R15 + 0x10]
MOV EDX,0x5
XOR EDI,EDI
XOR R13D,R13D
LEA RSI,[0x17fc00]
CALL 0x00107130
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001550d0
JMP 0x00151249
MOV ESI,0x8
MOV qword ptr [RSP + 0x8],RDX
MOV RDI,R14
CALL qword ptr [0x00196f88]
MOV RDX,qword ptr [RSP + 0x8]
MOV R13,qword ptr [R15 + 0x30]
MOV RCX,RAX
LEA RAX,[RAX + 0xc]
MOV R14,RDX
MOV EDX,0x8
JMP 0x0015120e
MOV EDX,0x5
XOR EDI,EDI
MOV qword ptr [RSP],RAX
MOV RBX,qword ptr [R15 + 0x10]
LEA RSI,[0x17d1f0]
CALL 0x00107130
MOV RCX,qword ptr [RSP]
MOVZX EDX,CL
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
XOR R13D,R13D
CALL 0x001550d0
JMP 0x00151249
MOV EDX,0x5
LEA RSI,[0x17fd60]
XOR EDI,EDI
MOV RBX,qword ptr [R15 + 0x10]
CALL 0x00107130
MOV EDX,R14D
JMP 0x001518df
MOV qword ptr [RSP + 0x8],RCX
MOV RDI,R13
CALL qword ptr [0x00196f88]
LEA RDX,[R14 + 0x4]
MOV RCX,qword ptr [RSP + 0x8]
CMP RBP,RDX
MOV R13D,EAX
JBE 0x0015133f
JMP 0x001514c7
MOV ESI,R13D
JMP 0x001511e7
(translation_unit "undefined4 FUN_00151190(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00151190(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" type_identifier (function_declarator "FUN_00151190(long param_1,undefined8 param_2)" identifier (parameter_list "(long param_1,undefined8 param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "short sVar5;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "long *__base;" (sized_type_specifier "long" long) (pointer_declarator "*__base" * identifier) ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar22;" (sized_type_specifier "long" long) (pointer_declarator "*plVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "long lVar25;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "ulong local_80;" type_identifier identifier ;) (expression_statement "uVar2 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar2 = *(ulong *)(param_1 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" identifier = (pointer_expression "*(char **)(param_1 + 0x10)" * (cast_expression "(char **)(param_1 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = uVar2 + uVar20;" (assignment_expression "uVar1 = uVar2 + uVar20" identifier = (binary_expression "uVar2 + uVar20" identifier + identifier)) ;) (if_statement "if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar16 = (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(pcVar16,pcVar10);" (call_expression "printf(pcVar16,pcVar10)" identifier (argument_list "(pcVar16,pcVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar10 = strstr(pcVar10,"debug_rnglists");" (assignment_expression "pcVar10 = strstr(pcVar10,"debug_rnglists")" identifier = (call_expression "strstr(pcVar10,"debug_rnglists")" identifier (argument_list "(pcVar10,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0;\n    local_80 = uVar2;\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "local_80 = uVar2;" (assignment_expression "local_80 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" else (compound_statement "{\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" { (expression_statement "uVar28 = uVar2 + 4;" (assignment_expression "uVar28 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (if_statement "if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" if (parenthesized_expression "(uVar28 < uVar1)" ( (binary_expression "uVar28 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }" { (expression_statement "uVar23 = 4;" (assignment_expression "uVar23 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);" statement_identifier : (expression_statement "lVar11 = (*DAT_00196f88)(uVar2,uVar23);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar2,uVar23)" identifier = (call_expression "(*DAT_00196f88)(uVar2,uVar23)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar2,uVar23)" ( identifier , identifier )))) ;)) (if_statement "if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" if (parenthesized_expression "(lVar11 == 0xffffffff)" ( (binary_expression "lVar11 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }" { (expression_statement "uVar23 = uVar2 + 0xc;" (assignment_expression "uVar23 = uVar2 + 0xc" identifier = (binary_expression "uVar2 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "(uVar23 < uVar1)" ( (binary_expression "uVar23 < uVar1" identifier < identifier) )) (compound_statement "{\n          lVar11 = 8;\n        }" { (expression_statement "lVar11 = 8;" (assignment_expression "lVar11 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" else (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) )) || (parenthesized_expression "(lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar20 - 4" identifier = (binary_expression "uVar20 - 4" identifier - number_literal)) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (compound_statement "{\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" { (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = 0xc;" (assignment_expression "uVar20 = 0xc" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0015120e;" goto statement_identifier ;) })))) (expression_statement "lVar11 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar28,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28,lVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = lVar11 + 0xc;" (assignment_expression "uVar20 = lVar11 + 0xc" identifier = (binary_expression "lVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" else (compound_statement "{\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" { (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = lVar11 + 4;" (assignment_expression "uVar20 = lVar11 + 4" identifier = (binary_expression "lVar11 + 4" identifier + number_literal)) ;) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" identifier = number_literal) ;) (expression_statement "uVar23 = uVar28;" (assignment_expression "uVar23 = uVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_0015120e:\n      uVar28 = uVar23;" statement_identifier : (expression_statement "uVar28 = uVar23;" (assignment_expression "uVar28 = uVar23" identifier = identifier) ;)) (if_statement "if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" if (parenthesized_expression "(uVar27 < uVar20)" ( (binary_expression "uVar27 < uVar20" identifier < identifier) )) (compound_statement "{\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" statement_identifier : (expression_statement "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" (assignment_expression "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" identifier = (call_expression "FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" identifier (argument_list "(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" ( identifier , (binary_expression "(uVar28 - *(long *)(param_1 + 0x20)) - lVar21" (parenthesized_expression "(uVar28 - *(long *)(param_1 + 0x20))" ( (binary_expression "uVar28 - *(long *)(param_1 + 0x20)" identifier - (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) - identifier) )))) ;)) (if_statement "if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" { (expression_statement "uVar12 = 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 "uVar12 = 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(uVar12,lVar11);" (call_expression "warn(uVar12,lVar11)" identifier (argument_list "(uVar12,lVar11)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" else (compound_statement "{\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" { (if_statement "if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" if (parenthesized_expression "((uVar2 < uVar1) && ((int)uVar20 - 1U < 8))" ( (binary_expression "(uVar2 < uVar1) && ((int)uVar20 - 1U < 8)" (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) && (parenthesized_expression "((int)uVar20 - 1U < 8)" ( (binary_expression "(int)uVar20 - 1U < 8" (binary_expression "(int)uVar20 - 1U" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" { (expression_statement "uVar23 = uVar20 & 0xffffffff;" (assignment_expression "uVar23 = uVar20 & 0xffffffff" identifier = (binary_expression "uVar20 & 0xffffffff" identifier & number_literal)) ;) (goto_statement "goto LAB_001511e7;" goto statement_identifier ;) })) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar20 < 4) goto LAB_00151283;" if (parenthesized_expression "(uVar20 < 4)" ( (binary_expression "uVar20 < 4" identifier < number_literal) )) (goto_statement "goto LAB_00151283;" goto statement_identifier ;)) }))) (expression_statement "uVar20 = uVar28 + 2;" (assignment_expression "uVar20 = uVar28 + 2" identifier = (binary_expression "uVar28 + 2" identifier + number_literal)) ;) (if_statement "if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "(uVar20 < uVar1)" ( (binary_expression "uVar20 < uVar1" identifier < identifier) )) (compound_statement "{\n      lVar11 = 2;\n    }" { (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" identifier = number_literal) ;) }) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" else (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) )) || (parenthesized_expression "(lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - uVar28" identifier = (binary_expression "uVar1 - uVar28" identifier - identifier)) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_00151229;" goto statement_identifier ;)))) (expression_statement "sVar5 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "sVar5 = (*DAT_00196f88)(uVar28,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28,lVar11)" ( identifier , identifier )))) ;) (if_statement "if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" if (parenthesized_expression "(sVar5 != 5)" ( (binary_expression "sVar5 != 5" identifier != number_literal) )) (compound_statement "{\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" { (labeled_statement "LAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar12 = 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(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar23 = uVar28 + 3;" (assignment_expression "uVar23 = uVar28 + 3" identifier = (binary_expression "uVar28 + 3" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" if (parenthesized_expression "(uVar23 < uVar1)" ( (binary_expression "uVar23 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,1);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,1)" identifier = (call_expression "(*DAT_00196f88)(uVar20,1)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,1)" ( identifier , number_literal )))) ;) (if_statement "if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" if (parenthesized_expression "(uVar28 + 4 < uVar1)" ( (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\nLAB_001514c7:\n        lVar11 = 1;\n      }" { (labeled_statement "LAB_001514c7:\n        lVar11 = 1;" statement_identifier : (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" else (compound_statement "{\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" { (expression_statement "lVar11 = uVar1 - uVar23;" (assignment_expression "lVar11 = uVar1 - uVar23" identifier = (binary_expression "uVar1 - uVar23" identifier - identifier)) ;) (if_statement "if (7 < (int)lVar11 - 1U) goto LAB_0015133f;" if (parenthesized_expression "(7 < (int)lVar11 - 1U)" ( (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_0015133f;" goto statement_identifier ;)) }))) (expression_statement "bVar4 = (*DAT_00196f88)(uVar23,lVar11);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar23,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar23,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar23,lVar11)" ( identifier , identifier )))) ;) (if_statement "if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar19 = 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 "uVar7 = (uint)bVar4;" (assignment_expression "uVar7 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001518df;" goto statement_identifier ;) })) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;) (if_statement "if (local_80 < uVar1) goto LAB_0015134d;" if (parenthesized_expression "(local_80 < uVar1)" ( (binary_expression "local_80 < uVar1" identifier < identifier) )) (goto_statement "goto LAB_0015134d;" goto statement_identifier ;)) (if_statement "if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;" if (parenthesized_expression "((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28 + 4)" ( (binary_expression "uVar1 <= uVar28 + 4" identifier <= (binary_expression "uVar28 + 4" identifier + number_literal)) )) || (parenthesized_expression "(lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - (uVar28 + 4)" identifier = (binary_expression "uVar1 - (uVar28 + 4)" identifier - (parenthesized_expression "(uVar28 + 4)" ( (binary_expression "uVar28 + 4" identifier + number_literal) )))) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" else (compound_statement "{\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" { (if_statement "if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }" if (parenthesized_expression "((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8))" ( (binary_expression "(uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar1)" ( (binary_expression "uVar20 < uVar1" identifier < identifier) )) && (parenthesized_expression "(((int)uVar1 - (int)uVar20) - 1U < 8)" ( (binary_expression "((int)uVar1 - (int)uVar20) - 1U < 8" (binary_expression "((int)uVar1 - (int)uVar20) - 1U" (parenthesized_expression "((int)uVar1 - (int)uVar20)" ( (binary_expression "(int)uVar1 - (int)uVar20" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20)" identifier = (call_expression "(*DAT_00196f88)(uVar20)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20)" ( identifier )))) ;) }) (else_clause "else {\n        uVar6 = 0;\n      }" else (compound_statement "{\n        uVar6 = 0;\n      }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar28 + 4 < uVar1) goto LAB_001514c7;" if (parenthesized_expression "(uVar28 + 4 < uVar1)" ( (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_001514c7;" goto statement_identifier ;)) (labeled_statement "LAB_0015133f:\n      local_80 = uVar28 + 8;" statement_identifier : (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;)) (if_statement "if (uVar1 <= uVar28 + 8) goto LAB_00151366;" if (parenthesized_expression "(uVar1 <= uVar28 + 8)" ( (binary_expression "uVar1 <= uVar28 + 8" identifier <= (binary_expression "uVar28 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) (labeled_statement "LAB_0015134d:\n      lVar11 = 4;" statement_identifier : (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;)) }))) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;) (expression_statement "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);" (assignment_expression "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28 + 4,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28 + 4,lVar11)" ( (binary_expression "uVar28 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar19 = 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 )))) ;) (labeled_statement "LAB_001518df:\n      warn(uVar19,uVar12,uVar7);" statement_identifier : (expression_statement "warn(uVar19,uVar12,uVar7);" (call_expression "warn(uVar19,uVar12,uVar7)" identifier (argument_list "(uVar19,uVar12,uVar7)" ( identifier , identifier , identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) }))) (labeled_statement "LAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);" statement_identifier : (expression_statement "iVar8 = FUN_00150dc0(param_2);" (assignment_expression "iVar8 = FUN_00150dc0(param_2)" identifier = (call_expression "FUN_00150dc0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar19 = 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 )))) ;) (expression_statement "warn(uVar19,uVar12);" (call_expression "warn(uVar19,uVar12)" identifier (argument_list "(uVar19,uVar12)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" if (parenthesized_expression "(DAT_00196f14 == 0)" ( (binary_expression "DAT_00196f14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" { (labeled_statement "LAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" statement_identifier : (expression_statement "pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar10 = (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(pcVar10);" (call_expression "printf(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)(DAT_00196f08 + 0x60);" (assignment_expression "piVar13 = (int *)(DAT_00196f08 + 0x60)" identifier = (cast_expression "(int *)(DAT_00196f08 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x60)" ( (binary_expression "DAT_00196f08 + 0x60" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);" do (compound_statement "{\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  }" { (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "piVar13 = piVar13 + 0x1a;" (assignment_expression "piVar13 = piVar13 + 0x1a" identifier = (binary_expression "piVar13 + 0x1a" identifier + number_literal)) ;) (expression_statement "uVar7 = iVar8 + (int)uVar20;" (assignment_expression "uVar7 = iVar8 + (int)uVar20" identifier = (binary_expression "iVar8 + (int)uVar20" identifier + (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = (ulong)uVar7;" (assignment_expression "uVar20 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13)" ( (binary_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13" (cast_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" ( (binary_expression "DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68" (binary_expression "DAT_00196f08 + 200" identifier + number_literal) + (binary_expression "(ulong)(DAT_00196f14 - 1) * 0x68" (call_expression "(ulong)(DAT_00196f14 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00196f14 - 1)" ( (binary_expression "DAT_00196f14 - 1" identifier - number_literal) ))) * number_literal)) ))) != identifier) )) ;) (if_statement "if (uVar7 == 0) goto LAB_00151839;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00151839;" goto statement_identifier ;)) (expression_statement "__base = (long *)FUN_001594b0(uVar20 << 4);" (assignment_expression "__base = (long *)FUN_001594b0(uVar20 << 4)" identifier = (cast_expression "(long *)FUN_001594b0(uVar20 << 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001594b0(uVar20 << 4)" identifier (argument_list "(uVar20 << 4)" ( (binary_expression "uVar20 << 4" identifier << number_literal) ))))) ;) (if_statement "if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" if (parenthesized_expression "(DAT_00196f14 != 0)" ( (binary_expression "DAT_00196f14 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" { (expression_statement "uVar9 = DAT_00196f14 - 1;" (assignment_expression "uVar9 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (expression_statement "lVar11 = DAT_00196f08 + 0x68;" (assignment_expression "lVar11 = DAT_00196f08 + 0x68" identifier = (binary_expression "DAT_00196f08 + 0x68" identifier + number_literal)) ;) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" identifier = identifier) ;) (expression_statement "lVar21 = DAT_00196f08;" (assignment_expression "lVar21 = DAT_00196f08" identifier = identifier) ;) (expression_statement "lVar25 = lVar11;" (assignment_expression "lVar25 = lVar11" identifier = identifier) ;) (while_statement "while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" { (if_statement "if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" if (parenthesized_expression "(*(int *)(lVar21 + 0x60) != 0)" ( (binary_expression "*(int *)(lVar21 + 0x60) != 0" (pointer_expression "*(int *)(lVar21 + 0x60)" * (cast_expression "(int *)(lVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + 0x60)" ( (binary_expression "lVar21 + 0x60" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" { (expression_statement "plVar22 = *(long **)(lVar21 + 0x58);" (assignment_expression "plVar22 = *(long **)(lVar21 + 0x58)" identifier = (pointer_expression "*(long **)(lVar21 + 0x58)" * (cast_expression "(long **)(lVar21 + 0x58)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar21 + 0x58)" ( (binary_expression "lVar21 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;" (assignment_expression "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" identifier = (binary_expression "plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" identifier + (binary_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" (parenthesized_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1)" ( (binary_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1) + 1" (call_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)(lVar21 + 0x60) - 1)" ( (binary_expression "*(int *)(lVar21 + 0x60) - 1" (pointer_expression "*(int *)(lVar21 + 0x60)" * (cast_expression "(int *)(lVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + 0x60)" ( (binary_expression "lVar21 + 0x60" identifier + number_literal) )))) - number_literal) ))) + number_literal) )) * number_literal))) ;) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" identifier = identifier) ;) (do_statement "do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);" do (compound_statement "{\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        }" { (expression_statement "lVar3 = *plVar22;" (assignment_expression "lVar3 = *plVar22" identifier = (pointer_expression "*plVar22" * identifier)) ;) (expression_statement "plVar15 = plVar14 + 2;" (assignment_expression "plVar15 = plVar14 + 2" identifier = (binary_expression "plVar14 + 2" identifier + number_literal)) ;) (expression_statement "plVar14[1] = lVar21;" (assignment_expression "plVar14[1] = lVar21" (subscript_expression "plVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar22 = plVar22 + 1;" (assignment_expression "plVar22 = plVar22 + 1" identifier = (binary_expression "plVar22 + 1" identifier + number_literal)) ;) (expression_statement "*plVar14 = lVar3;" (assignment_expression "*plVar14 = lVar3" (pointer_expression "*plVar14" * identifier) = identifier) ;) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" identifier = identifier) ;) }) while (parenthesized_expression "(plVar24 != plVar15)" ( (binary_expression "plVar24 != plVar15" identifier != identifier) )) ;) })) (if_statement "if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;" if (parenthesized_expression "(lVar25 == lVar11 + (ulong)uVar9 * 0x68)" ( (binary_expression "lVar25 == lVar11 + (ulong)uVar9 * 0x68" identifier == (binary_expression "lVar11 + (ulong)uVar9 * 0x68" identifier + (binary_expression "(ulong)uVar9 * 0x68" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal))) )) (break_statement "break;" break ;)) (expression_statement "lVar21 = lVar25;" (assignment_expression "lVar21 = lVar25" identifier = identifier) ;) (expression_statement "lVar25 = lVar25 + 0x68;" (assignment_expression "lVar25 = lVar25 + 0x68" identifier = (binary_expression "lVar25 + 0x68" identifier + number_literal)) ;) })) })) (expression_statement "qsort(__base,uVar20,0x10,FUN_0013cdc0);" (call_expression "qsort(__base,uVar20,0x10,FUN_0013cdc0)" identifier (argument_list "(__base,uVar20,0x10,FUN_0013cdc0)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" if (parenthesized_expression "(DAT_001946e0 != 0)" ( (binary_expression "DAT_001946e0 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *__base;" (assignment_expression "lVar11 = *__base" identifier = (pointer_expression "*__base" * identifier)) ;) (if_statement "if (lVar11 == 0) goto LAB_0015155c;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0015155c;" goto statement_identifier ;)) (expression_statement "uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar19 = 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(uVar19,uVar12,lVar11);" (call_expression "warn(uVar19,uVar12,lVar11)" identifier (argument_list "(uVar19,uVar12,lVar11)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);" statement_identifier : (expression_statement "FUN_0013ed70(uVar12,param_1 + 0x18);" (call_expression "FUN_0013ed70(uVar12,param_1 + 0x18)" identifier (argument_list "(uVar12,param_1 + 0x18)" ( identifier , (binary_expression "param_1 + 0x18" identifier + number_literal) ))) ;)) (expression_statement "pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar16 = (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(pcVar16);" (call_expression "printf(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "pcVar17 = FUN_0013e280;" (assignment_expression "pcVar17 = FUN_0013e280" identifier = identifier) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar17 = FUN_001419e0;\n  }" { (expression_statement "pcVar17 = FUN_001419e0;" (assignment_expression "pcVar17 = FUN_001419e0" identifier = identifier) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = uVar2;" (assignment_expression "uVar20 = uVar2" identifier = identifier) ;) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" identifier = identifier) ;) (do_statement "do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);" do (compound_statement "{\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  }" { (while_statement "while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" { (expression_statement "uVar26 = uVar6 & 0xff;" (assignment_expression "uVar26 = uVar6 & 0xff" identifier = (binary_expression "uVar6 & 0xff" identifier & number_literal)) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar26 = *(uint *)plVar15[1];\n      }" { (expression_statement "uVar26 = *(uint *)plVar15[1];" (assignment_expression "uVar26 = *(uint *)plVar15[1]" identifier = (pointer_expression "*(uint *)plVar15[1]" * (cast_expression "(uint *)plVar15[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])))) ;) })) (expression_statement "lVar11 = *plVar15;" (assignment_expression "lVar11 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) ;) (expression_statement "uVar28 = uVar2 + lVar11;" (assignment_expression "uVar28 = uVar2 + lVar11" identifier = (binary_expression "uVar2 + lVar11" 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 ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" if (parenthesized_expression "((uVar28 < uVar2) || (uVar1 <= uVar28))" ( (binary_expression "(uVar28 < uVar2) || (uVar1 <= uVar28)" (parenthesized_expression "(uVar28 < uVar2)" ( (binary_expression "uVar28 < uVar2" identifier < identifier) )) || (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) ))) )) (compound_statement "{\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }" { (expression_statement "uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar12 = 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(uVar12,lVar11,uVar9);" (call_expression "warn(uVar12,lVar11,uVar9)" identifier (argument_list "(uVar12,lVar11,uVar9)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" else (compound_statement "{\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" { (expression_statement "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);" (assignment_expression "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6)" identifier = (pointer_expression "*(undefined8 *)((uint *)plVar15[1] + 6)" * (cast_expression "(undefined8 *)((uint *)plVar15[1] + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint *)plVar15[1] + 6)" ( (binary_expression "(uint *)plVar15[1] + 6" (cast_expression "(uint *)plVar15[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" if (parenthesized_expression "((DAT_001946e0 != 0) && (uVar9 != 0))" ( (binary_expression "(DAT_001946e0 != 0) && (uVar9 != 0)" (parenthesized_expression "(DAT_001946e0 != 0)" ( (binary_expression "DAT_001946e0 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" { (if_statement "if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" if (parenthesized_expression "(local_80 < uVar28)" ( (binary_expression "local_80 < uVar28" identifier < identifier) )) (compound_statement "{\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" { (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = 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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" identifier (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" ( identifier , (binary_expression "local_80 - uVar2" identifier - identifier) , identifier , identifier ))) ;) }) (else_clause "else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" else (if_statement "if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" if (parenthesized_expression "(uVar28 < local_80)" ( (binary_expression "uVar28 < local_80" identifier < identifier) )) (compound_statement "{\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" { (if_statement "if (uVar28 == uVar20) goto LAB_0015168b;" if (parenthesized_expression "(uVar28 == uVar20)" ( (binary_expression "uVar28 == uVar20" identifier == identifier) )) (goto_statement "goto LAB_0015168b;" goto statement_identifier ;)) (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = 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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" identifier (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" ( identifier , (binary_expression "local_80 - uVar2" identifier - identifier) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);" (call_expression "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar28,uVar1,uVar26,lVar11,uVar12)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar28;" (assignment_expression "uVar20 = uVar28" identifier = identifier) ;) (expression_statement "local_80 = uVar28;" (assignment_expression "local_80 = uVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_0015168b:\n      uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" identifier = (binary_expression "plVar15 + 2" identifier + number_literal)) ;) (if_statement "if (uVar7 == uVar9) goto LAB_00151700;" if (parenthesized_expression "(uVar7 == uVar9)" ( (binary_expression "uVar7 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_00151700;" goto statement_identifier ;)) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" identifier = (binary_expression "plVar15 + 2" identifier + number_literal)) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar12 = 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(uVar12,uVar26,lVar11);" (call_expression "warn(uVar12,uVar26,lVar11)" identifier (argument_list "(uVar12,uVar26,lVar11)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(uVar7 != uVar9)" ( (binary_expression "uVar7 != uVar9" identifier != identifier) )) ;) (labeled_statement "LAB_00151700:\n  putc(10,stdout);" statement_identifier : (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;)) (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "int display_debug_ranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  debug_info *pdVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  dwarf_vma dVar5;\n  undefined8 uVar6;\n  bfd_boolean bVar7;\n  uint uVar8;\n  uint uVar9;\n  char *pcVar10;\n  elf_vma eVar11;\n  uint *puVar12;\n  dwarf_vma *__base;\n  dwarf_vma *pdVar13;\n  dwarf_vma *pdVar14;\n  char *pcVar15;\n  code *pcVar16;\n  char *pcVar17;\n  ulong uVar18;\n  uchar *puVar19;\n  long lVar20;\n  dwarf_vma *pdVar21;\n  dwarf_section *section_1;\n  dwarf_section *extraout_RDX;\n  int iVar22;\n  int iVar23;\n  dwarf_vma *pdVar24;\n  debug_info *pdVar25;\n  debug_info *pdVar26;\n  uint uVar27;\n  dwarf_section *section_00;\n  uint uVar28;\n  dwarf_size_type dVar29;\n  uchar *puVar30;\n  uchar *local_80;\n  \n  puVar4 = section->start;\n  uVar18 = section->size;\n  pcVar10 = section->name;\n  puVar3 = puVar4 + uVar18;\n  if (uVar18 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar28 = 0;\n    local_80 = puVar4;\n  }\n  else {\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }\nLAB_00151366:\n  uVar8 = load_debug_info(file);\n  if (uVar8 == 0) {\n    pcVar10 = section->name;\n    pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\n    warn(pcVar15,pcVar10);\n    return 0;\n  }\n  if (num_debug_info_entries == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar18 = 0;\n  puVar12 = &debug_information->num_range_lists;\n  do {\n    uVar8 = *puVar12;\n    puVar12 = puVar12 + 0x1a;\n    uVar8 = uVar8 + (int)uVar18;\n    uVar18 = (ulong)uVar8;\n  } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12);\n  if (uVar8 == 0) goto LAB_00151839;\n  __base = (dwarf_vma *)xmalloc(uVar18 << 4);\n  if (num_debug_info_entries != 0) {\n    uVar9 = num_debug_info_entries - 1;\n    pdVar2 = debug_information + 1;\n    pdVar14 = __base;\n    pdVar25 = debug_information;\n    pdVar26 = pdVar2;\n    while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }\n  }\n  qsort(__base,uVar18,0x10,range_entry_compar);\n  section_1 = (dwarf_section *)(ulong)(uint)dwarf_check;\n  if (dwarf_check != 0) {\n    section_00 = (dwarf_section *)section->name;\n    dVar5 = *__base;\n    if (dVar5 == 0) goto LAB_0015155c;\n    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(pcVar15,section_00,dVar5);\n    section_1 = extraout_RDX;\n  }\n  section_00 = (dwarf_section *)section->name;\nLAB_0015155c:\n  introduce(section_00,(int)section + 0x18,section_1);\n  pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar15);\n  pcVar16 = display_debug_ranges_list;\n  if (pcVar10 != (char *)0x0) {\n    pcVar16 = display_debug_rnglists_list;\n  }\n  uVar9 = 0;\n  puVar19 = puVar4;\n  pdVar14 = __base;\n  do {\n    while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    pdVar14 = pdVar14 + 2;\n    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(pcVar15,(ulong)uVar27,dVar5);\n  } while (uVar8 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}\n\n" (function_definition "int display_debug_ranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  debug_info *pdVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  dwarf_vma dVar5;\n  undefined8 uVar6;\n  bfd_boolean bVar7;\n  uint uVar8;\n  uint uVar9;\n  char *pcVar10;\n  elf_vma eVar11;\n  uint *puVar12;\n  dwarf_vma *__base;\n  dwarf_vma *pdVar13;\n  dwarf_vma *pdVar14;\n  char *pcVar15;\n  code *pcVar16;\n  char *pcVar17;\n  ulong uVar18;\n  uchar *puVar19;\n  long lVar20;\n  dwarf_vma *pdVar21;\n  dwarf_section *section_1;\n  dwarf_section *extraout_RDX;\n  int iVar22;\n  int iVar23;\n  dwarf_vma *pdVar24;\n  debug_info *pdVar25;\n  debug_info *pdVar26;\n  uint uVar27;\n  dwarf_section *section_00;\n  uint uVar28;\n  dwarf_size_type dVar29;\n  uchar *puVar30;\n  uchar *local_80;\n  \n  puVar4 = section->start;\n  uVar18 = section->size;\n  pcVar10 = section->name;\n  puVar3 = puVar4 + uVar18;\n  if (uVar18 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar28 = 0;\n    local_80 = puVar4;\n  }\n  else {\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }\nLAB_00151366:\n  uVar8 = load_debug_info(file);\n  if (uVar8 == 0) {\n    pcVar10 = section->name;\n    pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\n    warn(pcVar15,pcVar10);\n    return 0;\n  }\n  if (num_debug_info_entries == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar18 = 0;\n  puVar12 = &debug_information->num_range_lists;\n  do {\n    uVar8 = *puVar12;\n    puVar12 = puVar12 + 0x1a;\n    uVar8 = uVar8 + (int)uVar18;\n    uVar18 = (ulong)uVar8;\n  } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12);\n  if (uVar8 == 0) goto LAB_00151839;\n  __base = (dwarf_vma *)xmalloc(uVar18 << 4);\n  if (num_debug_info_entries != 0) {\n    uVar9 = num_debug_info_entries - 1;\n    pdVar2 = debug_information + 1;\n    pdVar14 = __base;\n    pdVar25 = debug_information;\n    pdVar26 = pdVar2;\n    while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }\n  }\n  qsort(__base,uVar18,0x10,range_entry_compar);\n  section_1 = (dwarf_section *)(ulong)(uint)dwarf_check;\n  if (dwarf_check != 0) {\n    section_00 = (dwarf_section *)section->name;\n    dVar5 = *__base;\n    if (dVar5 == 0) goto LAB_0015155c;\n    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(pcVar15,section_00,dVar5);\n    section_1 = extraout_RDX;\n  }\n  section_00 = (dwarf_section *)section->name;\nLAB_0015155c:\n  introduce(section_00,(int)section + 0x18,section_1);\n  pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar15);\n  pcVar16 = display_debug_ranges_list;\n  if (pcVar10 != (char *)0x0) {\n    pcVar16 = display_debug_rnglists_list;\n  }\n  uVar9 = 0;\n  puVar19 = puVar4;\n  pdVar14 = __base;\n  do {\n    while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    pdVar14 = pdVar14 + 2;\n    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(pcVar15,(ulong)uVar27,dVar5);\n  } while (uVar8 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\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  debug_info *pdVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  dwarf_vma dVar5;\n  undefined8 uVar6;\n  bfd_boolean bVar7;\n  uint uVar8;\n  uint uVar9;\n  char *pcVar10;\n  elf_vma eVar11;\n  uint *puVar12;\n  dwarf_vma *__base;\n  dwarf_vma *pdVar13;\n  dwarf_vma *pdVar14;\n  char *pcVar15;\n  code *pcVar16;\n  char *pcVar17;\n  ulong uVar18;\n  uchar *puVar19;\n  long lVar20;\n  dwarf_vma *pdVar21;\n  dwarf_section *section_1;\n  dwarf_section *extraout_RDX;\n  int iVar22;\n  int iVar23;\n  dwarf_vma *pdVar24;\n  debug_info *pdVar25;\n  debug_info *pdVar26;\n  uint uVar27;\n  dwarf_section *section_00;\n  uint uVar28;\n  dwarf_size_type dVar29;\n  uchar *puVar30;\n  uchar *local_80;\n  \n  puVar4 = section->start;\n  uVar18 = section->size;\n  pcVar10 = section->name;\n  puVar3 = puVar4 + uVar18;\n  if (uVar18 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar28 = 0;\n    local_80 = puVar4;\n  }\n  else {\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }\nLAB_00151366:\n  uVar8 = load_debug_info(file);\n  if (uVar8 == 0) {\n    pcVar10 = section->name;\n    pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\n    warn(pcVar15,pcVar10);\n    return 0;\n  }\n  if (num_debug_info_entries == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar18 = 0;\n  puVar12 = &debug_information->num_range_lists;\n  do {\n    uVar8 = *puVar12;\n    puVar12 = puVar12 + 0x1a;\n    uVar8 = uVar8 + (int)uVar18;\n    uVar18 = (ulong)uVar8;\n  } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12);\n  if (uVar8 == 0) goto LAB_00151839;\n  __base = (dwarf_vma *)xmalloc(uVar18 << 4);\n  if (num_debug_info_entries != 0) {\n    uVar9 = num_debug_info_entries - 1;\n    pdVar2 = debug_information + 1;\n    pdVar14 = __base;\n    pdVar25 = debug_information;\n    pdVar26 = pdVar2;\n    while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }\n  }\n  qsort(__base,uVar18,0x10,range_entry_compar);\n  section_1 = (dwarf_section *)(ulong)(uint)dwarf_check;\n  if (dwarf_check != 0) {\n    section_00 = (dwarf_section *)section->name;\n    dVar5 = *__base;\n    if (dVar5 == 0) goto LAB_0015155c;\n    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(pcVar15,section_00,dVar5);\n    section_1 = extraout_RDX;\n  }\n  section_00 = (dwarf_section *)section->name;\nLAB_0015155c:\n  introduce(section_00,(int)section + 0x18,section_1);\n  pcVar15 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar15);\n  pcVar16 = display_debug_ranges_list;\n  if (pcVar10 != (char *)0x0) {\n    pcVar16 = display_debug_rnglists_list;\n  }\n  uVar9 = 0;\n  puVar19 = puVar4;\n  pdVar14 = __base;\n  do {\n    while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    pdVar14 = pdVar14 + 2;\n    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(pcVar15,(ulong)uVar27,dVar5);\n  } while (uVar8 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "debug_info *pdVar2;" type_identifier (pointer_declarator "*pdVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "dwarf_vma dVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "bfd_boolean bVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "elf_vma eVar11;" type_identifier identifier ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "dwarf_vma *__base;" type_identifier (pointer_declarator "*__base" * identifier) ;) (declaration "dwarf_vma *pdVar13;" type_identifier (pointer_declarator "*pdVar13" * identifier) ;) (declaration "dwarf_vma *pdVar14;" type_identifier (pointer_declarator "*pdVar14" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "dwarf_vma *pdVar21;" type_identifier (pointer_declarator "*pdVar21" * identifier) ;) (declaration "dwarf_section *section_1;" type_identifier (pointer_declarator "*section_1" * identifier) ;) (declaration "dwarf_section *extraout_RDX;" type_identifier (pointer_declarator "*extraout_RDX" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "dwarf_vma *pdVar24;" type_identifier (pointer_declarator "*pdVar24" * identifier) ;) (declaration "debug_info *pdVar25;" type_identifier (pointer_declarator "*pdVar25" * identifier) ;) (declaration "debug_info *pdVar26;" type_identifier (pointer_declarator "*pdVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "dwarf_section *section_00;" type_identifier (pointer_declarator "*section_00" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "dwarf_size_type dVar29;" type_identifier identifier ;) (declaration "uchar *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "uchar *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (expression_statement "puVar4 = section->start;" (assignment_expression "puVar4 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "uVar18 = section->size;" (assignment_expression "uVar18 = section->size" identifier = (field_expression "section->size" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = section->name;" (assignment_expression "pcVar10 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "puVar3 = puVar4 + uVar18;" (assignment_expression "puVar3 = puVar4 + uVar18" identifier = (binary_expression "puVar4 + uVar18" identifier + identifier)) ;) (if_statement "if (uVar18 == 0) {\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar10);\n    return 0;\n  }" if (parenthesized_expression "(uVar18 == 0)" ( (binary_expression "uVar18 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar15 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar15,pcVar10);\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,pcVar10);" (call_expression "printf(pcVar15,pcVar10)" identifier (argument_list "(pcVar15,pcVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar10 = strstr(pcVar10,"debug_rnglists");" (assignment_expression "pcVar10 = strstr(pcVar10,"debug_rnglists")" identifier = (call_expression "strstr(pcVar10,"debug_rnglists")" identifier (argument_list "(pcVar10,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n    uVar28 = 0;\n    local_80 = puVar4;\n  }\n  else {\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar28 = 0;\n    local_80 = puVar4;\n  }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) (expression_statement "local_80 = puVar4;" (assignment_expression "local_80 = puVar4" identifier = identifier) ;) }) (else_clause "else {\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }" else (compound_statement "{\n    puVar19 = puVar4 + 4;\n    iVar23 = (int)uVar18;\n    if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }\n    puVar30 = puVar19 + 2;\n    iVar23 = (int)puVar3;\n    if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;\n    eVar11 = (*byte_get)(puVar19,iVar22);\n    if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }\n    puVar1 = puVar19 + 3;\n    if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }\n    local_80 = puVar19 + 8;\n    eVar11 = (*byte_get)(puVar19 + 4,iVar23);\n    if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }\n  }" { (expression_statement "puVar19 = puVar4 + 4;" (assignment_expression "puVar19 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "iVar23 = (int)uVar18;" (assignment_expression "iVar23 = (int)uVar18" identifier = (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar19 < puVar3) {\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }" if (parenthesized_expression "(puVar19 < puVar3)" ( (binary_expression "puVar19 < puVar3" identifier < identifier) )) (compound_statement "{\n      iVar22 = 4;\nLAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);\n      if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }\nLAB_0015120e:\n      puVar19 = puVar30;\n      if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }\n    }" { (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001511e7:\n      eVar11 = (*byte_get)(puVar4,iVar22);" statement_identifier : (expression_statement "eVar11 = (*byte_get)(puVar4,iVar22);" (assignment_expression "eVar11 = (*byte_get)(puVar4,iVar22)" identifier = (call_expression "(*byte_get)(puVar4,iVar22)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar4,iVar22)" ( identifier , identifier )))) ;)) (if_statement "if (eVar11 == 0xffffffff) {\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }\n      else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }" if (parenthesized_expression "(eVar11 == 0xffffffff)" ( (binary_expression "eVar11 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar30 = puVar4 + 0xc;\n        if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }\n        eVar11 = (*byte_get)(puVar19,iVar22);\n        dVar29 = section->size;\n        uVar18 = eVar11 + 0xc;\n        lVar20 = 8;\n      }" { (expression_statement "puVar30 = puVar4 + 0xc;" (assignment_expression "puVar30 = puVar4 + 0xc" identifier = (binary_expression "puVar4 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar30 < puVar3) {\n          iVar22 = 8;\n        }\n        else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "(puVar30 < puVar3)" ( (binary_expression "puVar30 < puVar3" identifier < identifier) )) (compound_statement "{\n          iVar22 = 8;\n        }" { (expression_statement "iVar22 = 8;" (assignment_expression "iVar22 = 8" identifier = number_literal) ;) }) (else_clause "else if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }" else (if_statement "if ((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)) {\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "((puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U))" ( (binary_expression "(puVar3 <= puVar19) || (iVar22 = iVar23 + -4, 7 < iVar23 - 5U)" (parenthesized_expression "(puVar3 <= puVar19)" ( (binary_expression "puVar3 <= puVar19" identifier <= identifier) )) || (parenthesized_expression "(iVar22 = iVar23 + -4, 7 < iVar23 - 5U)" ( (comma_expression "iVar22 = iVar23 + -4, 7 < iVar23 - 5U" (assignment_expression "iVar22 = iVar23 + -4" identifier = (binary_expression "iVar23 + -4" identifier + number_literal)) , (binary_expression "7 < iVar23 - 5U" number_literal < (binary_expression "iVar23 - 5U" identifier - number_literal))) ))) )) (compound_statement "{\n          dVar29 = section->size;\n          uVar18 = 0xc;\n          eVar11 = 0;\n          lVar20 = 8;\n          goto LAB_0015120e;\n        }" { (expression_statement "dVar29 = section->size;" (assignment_expression "dVar29 = section->size" identifier = (field_expression "section->size" identifier -> field_identifier)) ;) (expression_statement "uVar18 = 0xc;" (assignment_expression "uVar18 = 0xc" identifier = number_literal) ;) (expression_statement "eVar11 = 0;" (assignment_expression "eVar11 = 0" identifier = number_literal) ;) (expression_statement "lVar20 = 8;" (assignment_expression "lVar20 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0015120e;" goto statement_identifier ;) })))) (expression_statement "eVar11 = (*byte_get)(puVar19,iVar22);" (assignment_expression "eVar11 = (*byte_get)(puVar19,iVar22)" identifier = (call_expression "(*byte_get)(puVar19,iVar22)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19,iVar22)" ( identifier , identifier )))) ;) (expression_statement "dVar29 = section->size;" (assignment_expression "dVar29 = section->size" identifier = (field_expression "section->size" identifier -> field_identifier)) ;) (expression_statement "uVar18 = eVar11 + 0xc;" (assignment_expression "uVar18 = eVar11 + 0xc" identifier = (binary_expression "eVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "lVar20 = 8;" (assignment_expression "lVar20 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }" else (compound_statement "{\n        dVar29 = section->size;\n        uVar18 = eVar11 + 4;\n        lVar20 = 4;\n        puVar30 = puVar19;\n      }" { (expression_statement "dVar29 = section->size;" (assignment_expression "dVar29 = section->size" identifier = (field_expression "section->size" identifier -> field_identifier)) ;) (expression_statement "uVar18 = eVar11 + 4;" (assignment_expression "uVar18 = eVar11 + 4" identifier = (binary_expression "eVar11 + 4" identifier + number_literal)) ;) (expression_statement "lVar20 = 4;" (assignment_expression "lVar20 = 4" identifier = number_literal) ;) (expression_statement "puVar30 = puVar19;" (assignment_expression "puVar30 = puVar19" identifier = identifier) ;) }))) (labeled_statement "LAB_0015120e:\n      puVar19 = puVar30;" statement_identifier : (expression_statement "puVar19 = puVar30;" (assignment_expression "puVar19 = puVar30" identifier = identifier) ;)) (if_statement "if (dVar29 < uVar18) {\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }" if (parenthesized_expression "(dVar29 < uVar18)" ( (binary_expression "dVar29 < uVar18" identifier < identifier) )) (compound_statement "{\nLAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));\n        if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00151283:\n        bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));" statement_identifier : (expression_statement "bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)));" (assignment_expression "bVar7 = reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)))" identifier = (call_expression "reloc_at(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)))" identifier (argument_list "(section,(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start)))" ( identifier , (call_expression "(dwarf_vma)(puVar19 + (-lVar20 - (long)section->start))" (parenthesized_expression "(dwarf_vma)" ( identifier )) (argument_list "(puVar19 + (-lVar20 - (long)section->start))" ( (binary_expression "puVar19 + (-lVar20 - (long)section->start)" identifier + (parenthesized_expression "(-lVar20 - (long)section->start)" ( (binary_expression "-lVar20 - (long)section->start" (unary_expression "-lVar20" - identifier) - (cast_expression "(long)section->start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "section->start" identifier -> field_identifier))) ))) ))) )))) ;)) (if_statement "if (bVar7 == 0) {\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar10 = (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(pcVar10,eVar11);\n          return 0;\n        }" { (expression_statement "pcVar10 = (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 "pcVar10 = (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(pcVar10,eVar11);" (call_expression "warn(pcVar10,eVar11)" identifier (argument_list "(pcVar10,eVar11)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }" else (compound_statement "{\n      if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;\n      lVar20 = 4;\n      eVar11 = 0;\n      if (uVar18 < 4) goto LAB_00151283;\n    }" { (if_statement "if ((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)) goto LAB_001511e7;" if (parenthesized_expression "((puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8))" ( (binary_expression "(puVar4 < puVar3) && (iVar22 = iVar23, iVar23 - 1U < 8)" (parenthesized_expression "(puVar4 < puVar3)" ( (binary_expression "puVar4 < puVar3" identifier < identifier) )) && (parenthesized_expression "(iVar22 = iVar23, iVar23 - 1U < 8)" ( (comma_expression "iVar22 = iVar23, iVar23 - 1U < 8" (assignment_expression "iVar22 = iVar23" identifier = identifier) , (binary_expression "iVar23 - 1U < 8" (binary_expression "iVar23 - 1U" identifier - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_001511e7;" goto statement_identifier ;)) (expression_statement "lVar20 = 4;" (assignment_expression "lVar20 = 4" identifier = number_literal) ;) (expression_statement "eVar11 = 0;" (assignment_expression "eVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar18 < 4) goto LAB_00151283;" if (parenthesized_expression "(uVar18 < 4)" ( (binary_expression "uVar18 < 4" identifier < number_literal) )) (goto_statement "goto LAB_00151283;" goto statement_identifier ;)) }))) (expression_statement "puVar30 = puVar19 + 2;" (assignment_expression "puVar30 = puVar19 + 2" identifier = (binary_expression "puVar19 + 2" identifier + number_literal)) ;) (expression_statement "iVar23 = (int)puVar3;" (assignment_expression "iVar23 = (int)puVar3" identifier = (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar30 < puVar3) {\n      iVar22 = 2;\n    }\n    else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "(puVar30 < puVar3)" ( (binary_expression "puVar30 < puVar3" identifier < identifier) )) (compound_statement "{\n      iVar22 = 2;\n    }" { (expression_statement "iVar22 = 2;" (assignment_expression "iVar22 = 2" identifier = number_literal) ;) }) (else_clause "else if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;" else (if_statement "if ((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "((puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U))" ( (binary_expression "(puVar3 <= puVar19) || (iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U)" (parenthesized_expression "(puVar3 <= puVar19)" ( (binary_expression "puVar3 <= puVar19" identifier <= identifier) )) || (parenthesized_expression "(iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U)" ( (comma_expression "iVar22 = iVar23 - (int)puVar19, 7 < iVar22 - 1U" (assignment_expression "iVar22 = iVar23 - (int)puVar19" identifier = (binary_expression "iVar23 - (int)puVar19" identifier - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar22 - 1U" number_literal < (binary_expression "iVar22 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_00151229;" goto statement_identifier ;)))) (expression_statement "eVar11 = (*byte_get)(puVar19,iVar22);" (assignment_expression "eVar11 = (*byte_get)(puVar19,iVar22)" identifier = (call_expression "(*byte_get)(puVar19,iVar22)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19,iVar22)" ( identifier , identifier )))) ;) (if_statement "if ((short)eVar11 != 5) {\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }" if (parenthesized_expression "((short)eVar11 != 5)" ( (binary_expression "(short)eVar11 != 5" (cast_expression "(short)eVar11" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) != number_literal) )) (compound_statement "{\nLAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);\n      warn(pcVar10);\n      return 0;\n    }" { (labeled_statement "LAB_00151229:\n      pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);" statement_identifier : (expression_statement "pcVar10 = (char *)dcgettext(0,\n                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"\n                                  ,5);" (assignment_expression "pcVar10 = (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(pcVar10);" (call_expression "warn(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar1 = puVar19 + 3;" (assignment_expression "puVar1 = puVar19 + 3" identifier = (binary_expression "puVar19 + 3" identifier + number_literal)) ;) (if_statement "if (puVar1 < puVar3) {\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }" if (parenthesized_expression "(puVar1 < puVar3)" ( (binary_expression "puVar1 < puVar3" identifier < identifier) )) (compound_statement "{\n      eVar11 = (*byte_get)(puVar30,1);\n      uVar28 = (uint)eVar11;\n      if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }\n      eVar11 = (*byte_get)(puVar1,iVar22);\n      if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }\n      local_80 = puVar19 + 8;\n      if (local_80 < puVar3) goto LAB_0015134d;\n      if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;\n    }" { (expression_statement "eVar11 = (*byte_get)(puVar30,1);" (assignment_expression "eVar11 = (*byte_get)(puVar30,1)" identifier = (call_expression "(*byte_get)(puVar30,1)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar30,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar28 = (uint)eVar11;" (assignment_expression "uVar28 = (uint)eVar11" identifier = (cast_expression "(uint)eVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar19 + 4 < puVar3) {\nLAB_001514c7:\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }" if (parenthesized_expression "(puVar19 + 4 < puVar3)" ( (binary_expression "puVar19 + 4 < puVar3" (binary_expression "puVar19 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\nLAB_001514c7:\n        iVar22 = 1;\n      }" { (labeled_statement "LAB_001514c7:\n        iVar22 = 1;" statement_identifier : (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }" else (compound_statement "{\n        iVar22 = iVar23 - (int)puVar1;\n        if (7 < iVar22 - 1U) goto LAB_0015133f;\n      }" { (expression_statement "iVar22 = iVar23 - (int)puVar1;" (assignment_expression "iVar22 = iVar23 - (int)puVar1" identifier = (binary_expression "iVar23 - (int)puVar1" identifier - (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (7 < iVar22 - 1U) goto LAB_0015133f;" if (parenthesized_expression "(7 < iVar22 - 1U)" ( (binary_expression "7 < iVar22 - 1U" number_literal < (binary_expression "iVar22 - 1U" identifier - number_literal)) )) (goto_statement "goto LAB_0015133f;" goto statement_identifier ;)) }))) (expression_statement "eVar11 = (*byte_get)(puVar1,iVar22);" (assignment_expression "eVar11 = (*byte_get)(puVar1,iVar22)" identifier = (call_expression "(*byte_get)(puVar1,iVar22)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar1,iVar22)" ( identifier , identifier )))) ;) (if_statement "if ((char)eVar11 != '\0') {\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }" if (parenthesized_expression "((char)eVar11 != '\0')" ( (binary_expression "(char)eVar11 != '\0'" (cast_expression "(char)eVar11" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar10 = section->name;\n        pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);\n        uVar18 = eVar11 & 0xff;\n        goto LAB_001518df;\n      }" { (expression_statement "pcVar10 = section->name;" (assignment_expression "pcVar10 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,\n                                    "The %s section contains unsupported segment selector size: %d.\n"\n                                    ,5);" (assignment_expression "pcVar15 = (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 "uVar18 = eVar11 & 0xff;" (assignment_expression "uVar18 = eVar11 & 0xff" identifier = (binary_expression "eVar11 & 0xff" identifier & number_literal)) ;) (goto_statement "goto LAB_001518df;" goto statement_identifier ;) })) (expression_statement "local_80 = puVar19 + 8;" (assignment_expression "local_80 = puVar19 + 8" identifier = (binary_expression "puVar19 + 8" identifier + number_literal)) ;) (if_statement "if (local_80 < puVar3) goto LAB_0015134d;" if (parenthesized_expression "(local_80 < puVar3)" ( (binary_expression "local_80 < puVar3" identifier < identifier) )) (goto_statement "goto LAB_0015134d;" goto statement_identifier ;)) (if_statement "if ((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))\n      goto LAB_00151366;" if (parenthesized_expression "((puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U))" ( (binary_expression "(puVar3 <= puVar19 + 4) || (iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U)" (parenthesized_expression "(puVar3 <= puVar19 + 4)" ( (binary_expression "puVar3 <= puVar19 + 4" identifier <= (binary_expression "puVar19 + 4" identifier + number_literal)) )) || (parenthesized_expression "(iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U)" ( (comma_expression "iVar23 = iVar23 - (int)(puVar19 + 4), 7 < iVar23 - 1U" (assignment_expression "iVar23 = iVar23 - (int)(puVar19 + 4)" identifier = (binary_expression "iVar23 - (int)(puVar19 + 4)" identifier - (cast_expression "(int)(puVar19 + 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar19 + 4)" ( (binary_expression "puVar19 + 4" identifier + number_literal) ))))) , (binary_expression "7 < iVar23 - 1U" number_literal < (binary_expression "iVar23 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }" else (compound_statement "{\n      if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }\n      if (puVar19 + 4 < puVar3) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = puVar19 + 8;\n      if (puVar3 <= puVar19 + 8) goto LAB_00151366;\nLAB_0015134d:\n      iVar23 = 4;\n    }" { (if_statement "if ((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)) {\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }\n      else {\n        uVar28 = 0;\n      }" if (parenthesized_expression "((puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8))" ( (binary_expression "(puVar30 < puVar3) && (iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)" (parenthesized_expression "(puVar30 < puVar3)" ( (binary_expression "puVar30 < puVar3" identifier < identifier) )) && (parenthesized_expression "(iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8)" ( (comma_expression "iVar22 = iVar23 - (int)puVar30, iVar22 - 1U < 8" (assignment_expression "iVar22 = iVar23 - (int)puVar30" identifier = (binary_expression "iVar23 - (int)puVar30" identifier - (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar22 - 1U < 8" (binary_expression "iVar22 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n        eVar11 = (*byte_get)(puVar30,iVar22);\n        uVar28 = (uint)eVar11;\n      }" { (expression_statement "eVar11 = (*byte_get)(puVar30,iVar22);" (assignment_expression "eVar11 = (*byte_get)(puVar30,iVar22)" identifier = (call_expression "(*byte_get)(puVar30,iVar22)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar30,iVar22)" ( identifier , identifier )))) ;) (expression_statement "uVar28 = (uint)eVar11;" (assignment_expression "uVar28 = (uint)eVar11" identifier = (cast_expression "(uint)eVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar28 = 0;\n      }" else (compound_statement "{\n        uVar28 = 0;\n      }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) }))) (if_statement "if (puVar19 + 4 < puVar3) goto LAB_001514c7;" if (parenthesized_expression "(puVar19 + 4 < puVar3)" ( (binary_expression "puVar19 + 4 < puVar3" (binary_expression "puVar19 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_001514c7;" goto statement_identifier ;)) (labeled_statement "LAB_0015133f:\n      local_80 = puVar19 + 8;" statement_identifier : (expression_statement "local_80 = puVar19 + 8;" (assignment_expression "local_80 = puVar19 + 8" identifier = (binary_expression "puVar19 + 8" identifier + number_literal)) ;)) (if_statement "if (puVar3 <= puVar19 + 8) goto LAB_00151366;" if (parenthesized_expression "(puVar3 <= puVar19 + 8)" ( (binary_expression "puVar3 <= puVar19 + 8" identifier <= (binary_expression "puVar19 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) (labeled_statement "LAB_0015134d:\n      iVar23 = 4;" statement_identifier : (expression_statement "iVar23 = 4;" (assignment_expression "iVar23 = 4" identifier = number_literal) ;)) }))) (expression_statement "local_80 = puVar19 + 8;" (assignment_expression "local_80 = puVar19 + 8" identifier = (binary_expression "puVar19 + 8" identifier + number_literal)) ;) (expression_statement "eVar11 = (*byte_get)(puVar19 + 4,iVar23);" (assignment_expression "eVar11 = (*byte_get)(puVar19 + 4,iVar23)" identifier = (call_expression "(*byte_get)(puVar19 + 4,iVar23)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19 + 4,iVar23)" ( (binary_expression "puVar19 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if ((int)eVar11 != 0) {\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }" if (parenthesized_expression "((int)eVar11 != 0)" ( (binary_expression "(int)eVar11 != 0" (cast_expression "(int)eVar11" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n      pcVar10 = section->name;\n      pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);\n      uVar18 = eVar11 & 0xffffffff;\nLAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);\n      return 0;\n    }" { (expression_statement "pcVar10 = section->name;" (assignment_expression "pcVar10 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5)" identifier = (cast_expression "(char *)dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",\n                                  5)" identifier (argument_list "(0,"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 "uVar18 = eVar11 & 0xffffffff;" (assignment_expression "uVar18 = eVar11 & 0xffffffff" identifier = (binary_expression "eVar11 & 0xffffffff" identifier & number_literal)) ;) (labeled_statement "LAB_001518df:\n      warn(pcVar15,pcVar10,uVar18);" statement_identifier : (expression_statement "warn(pcVar15,pcVar10,uVar18);" (call_expression "warn(pcVar15,pcVar10,uVar18)" identifier (argument_list "(pcVar15,pcVar10,uVar18)" ( identifier , identifier , identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) }))) (labeled_statement "LAB_00151366:\n  uVar8 = load_debug_info(file);" statement_identifier : (expression_statement "uVar8 = load_debug_info(file);" (assignment_expression "uVar8 = load_debug_info(file)" identifier = (call_expression "load_debug_info(file)" identifier (argument_list "(file)" ( identifier )))) ;)) (if_statement "if (uVar8 == 0) {\n    pcVar10 = section->name;\n    pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\n    warn(pcVar15,pcVar10);\n    return 0;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar10 = section->name;\n    pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);\n    warn(pcVar15,pcVar10);\n    return 0;\n  }" { (expression_statement "pcVar10 = section->name;" (assignment_expression "pcVar10 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,\n                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                                ,5);" (assignment_expression "pcVar15 = (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 ))))) ;) (expression_statement "warn(pcVar15,pcVar10);" (call_expression "warn(pcVar15,pcVar10)" identifier (argument_list "(pcVar15,pcVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (num_debug_info_entries == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" if (parenthesized_expression "(num_debug_info_entries == 0)" ( (binary_expression "num_debug_info_entries == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" { (labeled_statement "LAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" statement_identifier : (expression_statement "pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar10 = (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(pcVar10);" (call_expression "printf(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar12 = &debug_information->num_range_lists;" (assignment_expression "puVar12 = &debug_information->num_range_lists" identifier = (pointer_expression "&debug_information->num_range_lists" & (field_expression "debug_information->num_range_lists" identifier -> field_identifier))) ;) (do_statement "do {\n    uVar8 = *puVar12;\n    puVar12 = puVar12 + 0x1a;\n    uVar8 = uVar8 + (int)uVar18;\n    uVar18 = (ulong)uVar8;\n  } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12);" do (compound_statement "{\n    uVar8 = *puVar12;\n    puVar12 = puVar12 + 0x1a;\n    uVar8 = uVar8 + (int)uVar18;\n    uVar18 = (ulong)uVar8;\n  }" { (expression_statement "uVar8 = *puVar12;" (assignment_expression "uVar8 = *puVar12" identifier = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + 0x1a;" (assignment_expression "puVar12 = puVar12 + 0x1a" identifier = (binary_expression "puVar12 + 0x1a" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar8 + (int)uVar18;" (assignment_expression "uVar8 = uVar8 + (int)uVar18" identifier = (binary_expression "uVar8 + (int)uVar18" identifier + (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar18 = (ulong)uVar8;" (assignment_expression "uVar18 = (ulong)uVar8" identifier = (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12)" ( (binary_expression "&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists != puVar12" (pointer_expression "&debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists" & (field_expression "debug_information[(ulong)(num_debug_info_entries - 1) + 1].num_range_lists" (subscript_expression "debug_information[(ulong)(num_debug_info_entries - 1) + 1]" identifier [ (binary_expression "(ulong)(num_debug_info_entries - 1) + 1" (call_expression "(ulong)(num_debug_info_entries - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(num_debug_info_entries - 1)" ( (binary_expression "num_debug_info_entries - 1" identifier - number_literal) ))) + number_literal) ]) . field_identifier)) != identifier) )) ;) (if_statement "if (uVar8 == 0) goto LAB_00151839;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00151839;" goto statement_identifier ;)) (expression_statement "__base = (dwarf_vma *)xmalloc(uVar18 << 4);" (assignment_expression "__base = (dwarf_vma *)xmalloc(uVar18 << 4)" identifier = (cast_expression "(dwarf_vma *)xmalloc(uVar18 << 4)" ( (type_descriptor "dwarf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar18 << 4)" identifier (argument_list "(uVar18 << 4)" ( (binary_expression "uVar18 << 4" identifier << number_literal) ))))) ;) (if_statement "if (num_debug_info_entries != 0) {\n    uVar9 = num_debug_info_entries - 1;\n    pdVar2 = debug_information + 1;\n    pdVar14 = __base;\n    pdVar25 = debug_information;\n    pdVar26 = pdVar2;\n    while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }\n  }" if (parenthesized_expression "(num_debug_info_entries != 0)" ( (binary_expression "num_debug_info_entries != 0" identifier != number_literal) )) (compound_statement "{\n    uVar9 = num_debug_info_entries - 1;\n    pdVar2 = debug_information + 1;\n    pdVar14 = __base;\n    pdVar25 = debug_information;\n    pdVar26 = pdVar2;\n    while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }\n  }" { (expression_statement "uVar9 = num_debug_info_entries - 1;" (assignment_expression "uVar9 = num_debug_info_entries - 1" identifier = (binary_expression "num_debug_info_entries - 1" identifier - number_literal)) ;) (expression_statement "pdVar2 = debug_information + 1;" (assignment_expression "pdVar2 = debug_information + 1" identifier = (binary_expression "debug_information + 1" identifier + number_literal)) ;) (expression_statement "pdVar14 = __base;" (assignment_expression "pdVar14 = __base" identifier = identifier) ;) (expression_statement "pdVar25 = debug_information;" (assignment_expression "pdVar25 = debug_information" identifier = identifier) ;) (expression_statement "pdVar26 = pdVar2;" (assignment_expression "pdVar26 = pdVar2" identifier = identifier) ;) (while_statement "while( true ) {\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }\n      if (pdVar26 == pdVar2 + uVar9) break;\n      pdVar25 = pdVar26;\n      pdVar26 = pdVar26 + 1;\n    }" { (if_statement "if (pdVar25->num_range_lists != 0) {\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }" if (parenthesized_expression "(pdVar25->num_range_lists != 0)" ( (binary_expression "pdVar25->num_range_lists != 0" (field_expression "pdVar25->num_range_lists" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        pdVar21 = pdVar25->range_lists;\n        pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;\n        pdVar13 = pdVar14;\n        do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);\n      }" { (expression_statement "pdVar21 = pdVar25->range_lists;" (assignment_expression "pdVar21 = pdVar25->range_lists" identifier = (field_expression "pdVar25->range_lists" identifier -> field_identifier)) ;) (expression_statement "pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2;" (assignment_expression "pdVar24 = pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2" identifier = (binary_expression "pdVar14 + ((ulong)(pdVar25->num_range_lists - 1) + 1) * 2" identifier + (binary_expression "((ulong)(pdVar25->num_range_lists - 1) + 1) * 2" (parenthesized_expression "((ulong)(pdVar25->num_range_lists - 1) + 1)" ( (binary_expression "(ulong)(pdVar25->num_range_lists - 1) + 1" (call_expression "(ulong)(pdVar25->num_range_lists - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pdVar25->num_range_lists - 1)" ( (binary_expression "pdVar25->num_range_lists - 1" (field_expression "pdVar25->num_range_lists" identifier -> field_identifier) - number_literal) ))) + number_literal) )) * number_literal))) ;) (expression_statement "pdVar13 = pdVar14;" (assignment_expression "pdVar13 = pdVar14" identifier = identifier) ;) (do_statement "do {\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        } while (pdVar24 != pdVar14);" do (compound_statement "{\n          dVar5 = *pdVar21;\n          pdVar14 = pdVar13 + 2;\n          pdVar13[1] = (dwarf_vma)pdVar25;\n          pdVar21 = pdVar21 + 1;\n          *pdVar13 = dVar5;\n          pdVar13 = pdVar14;\n        }" { (expression_statement "dVar5 = *pdVar21;" (assignment_expression "dVar5 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "pdVar14 = pdVar13 + 2;" (assignment_expression "pdVar14 = pdVar13 + 2" identifier = (binary_expression "pdVar13 + 2" identifier + number_literal)) ;) (expression_statement "pdVar13[1] = (dwarf_vma)pdVar25;" (assignment_expression "pdVar13[1] = (dwarf_vma)pdVar25" (subscript_expression "pdVar13[1]" identifier [ number_literal ]) = (cast_expression "(dwarf_vma)pdVar25" ( (type_descriptor "dwarf_vma" type_identifier) ) identifier)) ;) (expression_statement "pdVar21 = pdVar21 + 1;" (assignment_expression "pdVar21 = pdVar21 + 1" identifier = (binary_expression "pdVar21 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar13 = dVar5;" (assignment_expression "*pdVar13 = dVar5" (pointer_expression "*pdVar13" * identifier) = identifier) ;) (expression_statement "pdVar13 = pdVar14;" (assignment_expression "pdVar13 = pdVar14" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar24 != pdVar14)" ( (binary_expression "pdVar24 != pdVar14" identifier != identifier) )) ;) })) (if_statement "if (pdVar26 == pdVar2 + uVar9) break;" if (parenthesized_expression "(pdVar26 == pdVar2 + uVar9)" ( (binary_expression "pdVar26 == pdVar2 + uVar9" identifier == (binary_expression "pdVar2 + uVar9" identifier + identifier)) )) (break_statement "break;" break ;)) (expression_statement "pdVar25 = pdVar26;" (assignment_expression "pdVar25 = pdVar26" identifier = identifier) ;) (expression_statement "pdVar26 = pdVar26 + 1;" (assignment_expression "pdVar26 = pdVar26 + 1" identifier = (binary_expression "pdVar26 + 1" identifier + number_literal)) ;) })) })) (expression_statement "qsort(__base,uVar18,0x10,range_entry_compar);" (call_expression "qsort(__base,uVar18,0x10,range_entry_compar)" identifier (argument_list "(__base,uVar18,0x10,range_entry_compar)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "section_1 = (dwarf_section *)(ulong)(uint)dwarf_check;" (assignment_expression "section_1 = (dwarf_section *)(ulong)(uint)dwarf_check" identifier = (cast_expression "(dwarf_section *)(ulong)(uint)dwarf_check" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(uint)dwarf_check" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)dwarf_check" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (if_statement "if (dwarf_check != 0) {\n    section_00 = (dwarf_section *)section->name;\n    dVar5 = *__base;\n    if (dVar5 == 0) goto LAB_0015155c;\n    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(pcVar15,section_00,dVar5);\n    section_1 = extraout_RDX;\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    dVar5 = *__base;\n    if (dVar5 == 0) goto LAB_0015155c;\n    pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(pcVar15,section_00,dVar5);\n    section_1 = extraout_RDX;\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 "dVar5 = *__base;" (assignment_expression "dVar5 = *__base" identifier = (pointer_expression "*__base" * identifier)) ;) (if_statement "if (dVar5 == 0) goto LAB_0015155c;" if (parenthesized_expression "(dVar5 == 0)" ( (binary_expression "dVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0015155c;" goto statement_identifier ;)) (expression_statement "pcVar15 = (char *)dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "pcVar15 = (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(pcVar15,section_00,dVar5);" (call_expression "warn(pcVar15,section_00,dVar5)" identifier (argument_list "(pcVar15,section_00,dVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "section_1 = extraout_RDX;" (assignment_expression "section_1 = extraout_RDX" 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))) ;) (labeled_statement "LAB_0015155c:\n  introduce(section_00,(int)section + 0x18,section_1);" statement_identifier : (expression_statement "introduce(section_00,(int)section + 0x18,section_1);" (call_expression "introduce(section_00,(int)section + 0x18,section_1)" identifier (argument_list "(section_00,(int)section + 0x18,section_1)" ( identifier , (binary_expression "(int)section + 0x18" (cast_expression "(int)section" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;)) (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 "pcVar16 = display_debug_ranges_list;" (assignment_expression "pcVar16 = display_debug_ranges_list" identifier = identifier) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n    pcVar16 = display_debug_rnglists_list;\n  }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar16 = display_debug_rnglists_list;\n  }" { (expression_statement "pcVar16 = display_debug_rnglists_list;" (assignment_expression "pcVar16 = display_debug_rnglists_list" identifier = identifier) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar19 = puVar4;" (assignment_expression "puVar19 = puVar4" identifier = identifier) ;) (expression_statement "pdVar14 = __base;" (assignment_expression "pdVar14 = __base" identifier = identifier) ;) (do_statement "do {\n    while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    pdVar14 = pdVar14 + 2;\n    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(pcVar15,(ulong)uVar27,dVar5);\n  } while (uVar8 != uVar9);" do (compound_statement "{\n    while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    pdVar14 = pdVar14 + 2;\n    pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(pcVar15,(ulong)uVar27,dVar5);\n  }" { (while_statement "while( true ) {\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar27 = uVar28 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }\n      dVar5 = *pdVar14;\n      puVar30 = puVar4 + dVar5;\n      if (6 < uVar27 - 2) break;\n      if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      pdVar14 = pdVar14 + 2;\n      if (uVar8 == uVar9) goto LAB_00151700;\n    }" { (expression_statement "uVar27 = uVar28 & 0xff;" (assignment_expression "uVar27 = uVar28 & 0xff" identifier = (binary_expression "uVar28 & 0xff" identifier & number_literal)) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        uVar27 = *(uint *)pdVar14[1];\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar27 = *(uint *)pdVar14[1];\n      }" { (expression_statement "uVar27 = *(uint *)pdVar14[1];" (assignment_expression "uVar27 = *(uint *)pdVar14[1]" identifier = (pointer_expression "*(uint *)pdVar14[1]" * (cast_expression "(uint *)pdVar14[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pdVar14[1]" identifier [ number_literal ])))) ;) })) (expression_statement "dVar5 = *pdVar14;" (assignment_expression "dVar5 = *pdVar14" identifier = (pointer_expression "*pdVar14" * identifier)) ;) (expression_statement "puVar30 = puVar4 + dVar5;" (assignment_expression "puVar30 = puVar4 + dVar5" identifier = (binary_expression "puVar4 + dVar5" identifier + identifier)) ;) (if_statement "if (6 < uVar27 - 2) break;" if (parenthesized_expression "(6 < uVar27 - 2)" ( (binary_expression "6 < uVar27 - 2" number_literal < (binary_expression "uVar27 - 2" identifier - number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((puVar30 < puVar4) || (puVar3 <= puVar30)) {\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }\n      else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }" if (parenthesized_expression "((puVar30 < puVar4) || (puVar3 <= puVar30))" ( (binary_expression "(puVar30 < puVar4) || (puVar3 <= puVar30)" (parenthesized_expression "(puVar30 < puVar4)" ( (binary_expression "puVar30 < puVar4" identifier < identifier) )) || (parenthesized_expression "(puVar3 <= puVar30)" ( (binary_expression "puVar3 <= puVar30" identifier <= identifier) ))) )) (compound_statement "{\n        pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(pcVar15,dVar5,(ulong)uVar9);\n      }" { (expression_statement "pcVar15 = (char *)dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "pcVar15 = (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(pcVar15,dVar5,(ulong)uVar9);" (call_expression "warn(pcVar15,dVar5,(ulong)uVar9)" identifier (argument_list "(pcVar15,dVar5,(ulong)uVar9)" ( identifier , identifier , (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }) (else_clause "else {\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }" else (compound_statement "{\n        uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);\n        if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }\n        (*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);\n        puVar19 = puVar30;\n        local_80 = puVar30;\n      }" { (expression_statement "uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6);" (assignment_expression "uVar6 = *(undefined8 *)((uint *)pdVar14[1] + 6)" identifier = (pointer_expression "*(undefined8 *)((uint *)pdVar14[1] + 6)" * (cast_expression "(undefined8 *)((uint *)pdVar14[1] + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint *)pdVar14[1] + 6)" ( (binary_expression "(uint *)pdVar14[1] + 6" (cast_expression "(uint *)pdVar14[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pdVar14[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((dwarf_check != 0) && (uVar9 != 0)) {\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }" if (parenthesized_expression "((dwarf_check != 0) && (uVar9 != 0))" ( (binary_expression "(dwarf_check != 0) && (uVar9 != 0)" (parenthesized_expression "(dwarf_check != 0)" ( (binary_expression "dwarf_check != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n        }" { (if_statement "if (local_80 < puVar30) {\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }\n          else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }" if (parenthesized_expression "(local_80 < puVar30)" ( (binary_expression "local_80 < puVar30" identifier < identifier) )) (compound_statement "{\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }" { (expression_statement "pcVar15 = section->name;" (assignment_expression "pcVar15 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\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",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(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);" (call_expression "warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15)" identifier (argument_list "(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15)" ( identifier , (binary_expression "(long)local_80 - (long)puVar4" (cast_expression "(long)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier , identifier ))) ;) }) (else_clause "else if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }" else (if_statement "if (puVar30 < local_80) {\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }" if (parenthesized_expression "(puVar30 < local_80)" ( (binary_expression "puVar30 < local_80" identifier < identifier) )) (compound_statement "{\n            if (puVar30 == puVar19) goto LAB_0015168b;\n            pcVar15 = section->name;\n            pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);\n          }" { (if_statement "if (puVar30 == puVar19) goto LAB_0015168b;" if (parenthesized_expression "(puVar30 == puVar19)" ( (binary_expression "puVar30 == puVar19" identifier == identifier) )) (goto_statement "goto LAB_0015168b;" goto statement_identifier ;)) (expression_statement "pcVar15 = section->name;" (assignment_expression "pcVar15 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15);" (call_expression "warn(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15)" identifier (argument_list "(pcVar17,(long)local_80 - (long)puVar4,dVar5,pcVar15)" ( identifier , (binary_expression "(long)local_80 - (long)puVar4" (cast_expression "(long)local_80" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6);" (call_expression "(*pcVar16)(puVar30,puVar3,uVar27,dVar5,uVar6)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puVar30,puVar3,uVar27,dVar5,uVar6)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar19 = puVar30;" (assignment_expression "puVar19 = puVar30" identifier = identifier) ;) (expression_statement "local_80 = puVar30;" (assignment_expression "local_80 = puVar30" identifier = identifier) ;) }))) (labeled_statement "LAB_0015168b:\n      uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "pdVar14 = pdVar14 + 2;" (assignment_expression "pdVar14 = pdVar14 + 2" identifier = (binary_expression "pdVar14 + 2" identifier + number_literal)) ;) (if_statement "if (uVar8 == uVar9) goto LAB_00151700;" if (parenthesized_expression "(uVar8 == uVar9)" ( (binary_expression "uVar8 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_00151700;" goto statement_identifier ;)) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "pdVar14 = pdVar14 + 2;" (assignment_expression "pdVar14 = pdVar14 + 2" identifier = (binary_expression "pdVar14 + 2" identifier + number_literal)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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(pcVar15,(ulong)uVar27,dVar5);" (call_expression "warn(pcVar15,(ulong)uVar27,dVar5)" identifier (argument_list "(pcVar15,(ulong)uVar27,dVar5)" ( identifier , (cast_expression "(ulong)uVar27" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier ))) ;) }) while (parenthesized_expression "(uVar8 != uVar9)" ( (binary_expression "uVar8 != uVar9" identifier != identifier) )) ;) (labeled_statement "LAB_00151700:\n  putc(10,stdout);" statement_identifier : (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;)) (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00151190(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00151190(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" type_identifier (function_declarator "FUN_00151190(long param_1,undefined8 param_2)" identifier (parameter_list "(long param_1,undefined8 param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "short sVar5;" (sized_type_specifier "short" short) identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "long *__base;" (sized_type_specifier "long" long) (pointer_declarator "*__base" * identifier) ;) (declaration "long *plVar14;" (sized_type_specifier "long" long) (pointer_declarator "*plVar14" * identifier) ;) (declaration "long *plVar15;" (sized_type_specifier "long" long) (pointer_declarator "*plVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "long lVar21;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar22;" (sized_type_specifier "long" long) (pointer_declarator "*plVar22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "long *plVar24;" (sized_type_specifier "long" long) (pointer_declarator "*plVar24" * identifier) ;) (declaration "long lVar25;" (sized_type_specifier "long" long) identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "ulong local_80;" type_identifier identifier ;) (expression_statement "uVar2 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar2 = *(ulong *)(param_1 + 0x20)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x20)" * (cast_expression "(ulong *)(param_1 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" identifier = (pointer_expression "*(char **)(param_1 + 0x10)" * (cast_expression "(char **)(param_1 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = uVar2 + uVar20;" (assignment_expression "uVar1 = uVar2 + uVar20" identifier = (binary_expression "uVar2 + uVar20" identifier + identifier)) ;) (if_statement "if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar16 = (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(pcVar16,pcVar10);" (call_expression "printf(pcVar16,pcVar10)" identifier (argument_list "(pcVar16,pcVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar10 = strstr(pcVar10,"debug_rnglists");" (assignment_expression "pcVar10 = strstr(pcVar10,"debug_rnglists")" identifier = (call_expression "strstr(pcVar10,"debug_rnglists")" identifier (argument_list "(pcVar10,"debug_rnglists")" ( identifier , (string_literal ""debug_rnglists"" " string_content ") )))) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar6 = 0;\n    local_80 = uVar2;\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "local_80 = uVar2;" (assignment_expression "local_80 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" else (compound_statement "{\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" { (expression_statement "uVar28 = uVar2 + 4;" (assignment_expression "uVar28 = uVar2 + 4" identifier = (binary_expression "uVar2 + 4" identifier + number_literal)) ;) (if_statement "if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" if (parenthesized_expression "(uVar28 < uVar1)" ( (binary_expression "uVar28 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }" { (expression_statement "uVar23 = 4;" (assignment_expression "uVar23 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);" statement_identifier : (expression_statement "lVar11 = (*DAT_00196f88)(uVar2,uVar23);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar2,uVar23)" identifier = (call_expression "(*DAT_00196f88)(uVar2,uVar23)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar2,uVar23)" ( identifier , identifier )))) ;)) (if_statement "if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" if (parenthesized_expression "(lVar11 == 0xffffffff)" ( (binary_expression "lVar11 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }" { (expression_statement "uVar23 = uVar2 + 0xc;" (assignment_expression "uVar23 = uVar2 + 0xc" identifier = (binary_expression "uVar2 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "(uVar23 < uVar1)" ( (binary_expression "uVar23 < uVar1" identifier < identifier) )) (compound_statement "{\n          lVar11 = 8;\n        }" { (expression_statement "lVar11 = 8;" (assignment_expression "lVar11 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" else (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" if (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) )) || (parenthesized_expression "(lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar20 - 4" identifier = (binary_expression "uVar20 - 4" identifier - number_literal)) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (compound_statement "{\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" { (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = 0xc;" (assignment_expression "uVar20 = 0xc" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0015120e;" goto statement_identifier ;) })))) (expression_statement "lVar11 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar28,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28,lVar11)" ( identifier , identifier )))) ;) (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = lVar11 + 0xc;" (assignment_expression "uVar20 = lVar11 + 0xc" identifier = (binary_expression "lVar11 + 0xc" identifier + number_literal)) ;) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" identifier = number_literal) ;) }) (else_clause "else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" else (compound_statement "{\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" { (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "uVar20 = lVar11 + 4;" (assignment_expression "uVar20 = lVar11 + 4" identifier = (binary_expression "lVar11 + 4" identifier + number_literal)) ;) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" identifier = number_literal) ;) (expression_statement "uVar23 = uVar28;" (assignment_expression "uVar23 = uVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_0015120e:\n      uVar28 = uVar23;" statement_identifier : (expression_statement "uVar28 = uVar23;" (assignment_expression "uVar28 = uVar23" identifier = identifier) ;)) (if_statement "if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" if (parenthesized_expression "(uVar27 < uVar20)" ( (binary_expression "uVar27 < uVar20" identifier < identifier) )) (compound_statement "{\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" { (labeled_statement "LAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" statement_identifier : (expression_statement "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" (assignment_expression "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" identifier = (call_expression "FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" identifier (argument_list "(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" ( identifier , (binary_expression "(uVar28 - *(long *)(param_1 + 0x20)) - lVar21" (parenthesized_expression "(uVar28 - *(long *)(param_1 + 0x20))" ( (binary_expression "uVar28 - *(long *)(param_1 + 0x20)" identifier - (pointer_expression "*(long *)(param_1 + 0x20)" * (cast_expression "(long *)(param_1 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) )) - identifier) )))) ;)) (if_statement "if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" { (expression_statement "uVar12 = 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 "uVar12 = 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(uVar12,lVar11);" (call_expression "warn(uVar12,lVar11)" identifier (argument_list "(uVar12,lVar11)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) })) }) (else_clause "else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" else (compound_statement "{\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" { (if_statement "if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" if (parenthesized_expression "((uVar2 < uVar1) && ((int)uVar20 - 1U < 8))" ( (binary_expression "(uVar2 < uVar1) && ((int)uVar20 - 1U < 8)" (parenthesized_expression "(uVar2 < uVar1)" ( (binary_expression "uVar2 < uVar1" identifier < identifier) )) && (parenthesized_expression "((int)uVar20 - 1U < 8)" ( (binary_expression "(int)uVar20 - 1U < 8" (binary_expression "(int)uVar20 - 1U" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" { (expression_statement "uVar23 = uVar20 & 0xffffffff;" (assignment_expression "uVar23 = uVar20 & 0xffffffff" identifier = (binary_expression "uVar20 & 0xffffffff" identifier & number_literal)) ;) (goto_statement "goto LAB_001511e7;" goto statement_identifier ;) })) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" identifier = number_literal) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (if_statement "if (uVar20 < 4) goto LAB_00151283;" if (parenthesized_expression "(uVar20 < 4)" ( (binary_expression "uVar20 < 4" identifier < number_literal) )) (goto_statement "goto LAB_00151283;" goto statement_identifier ;)) }))) (expression_statement "uVar20 = uVar28 + 2;" (assignment_expression "uVar20 = uVar28 + 2" identifier = (binary_expression "uVar28 + 2" identifier + number_literal)) ;) (if_statement "if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "(uVar20 < uVar1)" ( (binary_expression "uVar20 < uVar1" identifier < identifier) )) (compound_statement "{\n      lVar11 = 2;\n    }" { (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" identifier = number_literal) ;) }) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" else (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" if (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) )) || (parenthesized_expression "(lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - uVar28" identifier = (binary_expression "uVar1 - uVar28" identifier - identifier)) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_00151229;" goto statement_identifier ;)))) (expression_statement "sVar5 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "sVar5 = (*DAT_00196f88)(uVar28,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28,lVar11)" ( identifier , identifier )))) ;) (if_statement "if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" if (parenthesized_expression "(sVar5 != 5)" ( (binary_expression "sVar5 != 5" identifier != number_literal) )) (compound_statement "{\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" { (labeled_statement "LAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar12 = 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(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar23 = uVar28 + 3;" (assignment_expression "uVar23 = uVar28 + 3" identifier = (binary_expression "uVar28 + 3" identifier + number_literal)) ;) (if_statement "if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" if (parenthesized_expression "(uVar23 < uVar1)" ( (binary_expression "uVar23 < uVar1" identifier < identifier) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,1);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,1)" identifier = (call_expression "(*DAT_00196f88)(uVar20,1)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,1)" ( identifier , number_literal )))) ;) (if_statement "if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" if (parenthesized_expression "(uVar28 + 4 < uVar1)" ( (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\nLAB_001514c7:\n        lVar11 = 1;\n      }" { (labeled_statement "LAB_001514c7:\n        lVar11 = 1;" statement_identifier : (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" else (compound_statement "{\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" { (expression_statement "lVar11 = uVar1 - uVar23;" (assignment_expression "lVar11 = uVar1 - uVar23" identifier = (binary_expression "uVar1 - uVar23" identifier - identifier)) ;) (if_statement "if (7 < (int)lVar11 - 1U) goto LAB_0015133f;" if (parenthesized_expression "(7 < (int)lVar11 - 1U)" ( (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) )) (goto_statement "goto LAB_0015133f;" goto statement_identifier ;)) }))) (expression_statement "bVar4 = (*DAT_00196f88)(uVar23,lVar11);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar23,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar23,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar23,lVar11)" ( identifier , identifier )))) ;) (if_statement "if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar19 = 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 "uVar7 = (uint)bVar4;" (assignment_expression "uVar7 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_001518df;" goto statement_identifier ;) })) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;) (if_statement "if (local_80 < uVar1) goto LAB_0015134d;" if (parenthesized_expression "(local_80 < uVar1)" ( (binary_expression "local_80 < uVar1" identifier < identifier) )) (goto_statement "goto LAB_0015134d;" goto statement_identifier ;)) (if_statement "if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;" if (parenthesized_expression "((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))" ( (binary_expression "(uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28 + 4)" ( (binary_expression "uVar1 <= uVar28 + 4" identifier <= (binary_expression "uVar28 + 4" identifier + number_literal)) )) || (parenthesized_expression "(lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" ( (comma_expression "lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - (uVar28 + 4)" identifier = (binary_expression "uVar1 - (uVar28 + 4)" identifier - (parenthesized_expression "(uVar28 + 4)" ( (binary_expression "uVar28 + 4" identifier + number_literal) )))) , (binary_expression "7 < (int)lVar11 - 1U" number_literal < (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" else (compound_statement "{\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" { (if_statement "if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }" if (parenthesized_expression "((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8))" ( (binary_expression "(uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar1)" ( (binary_expression "uVar20 < uVar1" identifier < identifier) )) && (parenthesized_expression "(((int)uVar1 - (int)uVar20) - 1U < 8)" ( (binary_expression "((int)uVar1 - (int)uVar20) - 1U < 8" (binary_expression "((int)uVar1 - (int)uVar20) - 1U" (parenthesized_expression "((int)uVar1 - (int)uVar20)" ( (binary_expression "(int)uVar1 - (int)uVar20" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20)" identifier = (call_expression "(*DAT_00196f88)(uVar20)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20)" ( identifier )))) ;) }) (else_clause "else {\n        uVar6 = 0;\n      }" else (compound_statement "{\n        uVar6 = 0;\n      }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar28 + 4 < uVar1) goto LAB_001514c7;" if (parenthesized_expression "(uVar28 + 4 < uVar1)" ( (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" identifier + number_literal) < identifier) )) (goto_statement "goto LAB_001514c7;" goto statement_identifier ;)) (labeled_statement "LAB_0015133f:\n      local_80 = uVar28 + 8;" statement_identifier : (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;)) (if_statement "if (uVar1 <= uVar28 + 8) goto LAB_00151366;" if (parenthesized_expression "(uVar1 <= uVar28 + 8)" ( (binary_expression "uVar1 <= uVar28 + 8" identifier <= (binary_expression "uVar28 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_00151366;" goto statement_identifier ;)) (labeled_statement "LAB_0015134d:\n      lVar11 = 4;" statement_identifier : (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;)) }))) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" identifier = (binary_expression "uVar28 + 8" identifier + number_literal)) ;) (expression_statement "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);" (assignment_expression "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11)" identifier = (call_expression "(*DAT_00196f88)(uVar28 + 4,lVar11)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar28 + 4,lVar11)" ( (binary_expression "uVar28 + 4" identifier + number_literal) , identifier )))) ;) (if_statement "if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar19 = 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 )))) ;) (labeled_statement "LAB_001518df:\n      warn(uVar19,uVar12,uVar7);" statement_identifier : (expression_statement "warn(uVar19,uVar12,uVar7);" (call_expression "warn(uVar19,uVar12,uVar7)" identifier (argument_list "(uVar19,uVar12,uVar7)" ( identifier , identifier , identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) }))) (labeled_statement "LAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);" statement_identifier : (expression_statement "iVar8 = FUN_00150dc0(param_2);" (assignment_expression "iVar8 = FUN_00150dc0(param_2)" identifier = (call_expression "FUN_00150dc0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar19 = 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 )))) ;) (expression_statement "warn(uVar19,uVar12);" (call_expression "warn(uVar19,uVar12)" identifier (argument_list "(uVar19,uVar12)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" if (parenthesized_expression "(DAT_00196f14 == 0)" ( (binary_expression "DAT_00196f14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" { (labeled_statement "LAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" statement_identifier : (expression_statement "pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar10 = (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(pcVar10);" (call_expression "printf(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)(DAT_00196f08 + 0x60);" (assignment_expression "piVar13 = (int *)(DAT_00196f08 + 0x60)" identifier = (cast_expression "(int *)(DAT_00196f08 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x60)" ( (binary_expression "DAT_00196f08 + 0x60" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);" do (compound_statement "{\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  }" { (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "piVar13 = piVar13 + 0x1a;" (assignment_expression "piVar13 = piVar13 + 0x1a" identifier = (binary_expression "piVar13 + 0x1a" identifier + number_literal)) ;) (expression_statement "uVar7 = iVar8 + (int)uVar20;" (assignment_expression "uVar7 = iVar8 + (int)uVar20" identifier = (binary_expression "iVar8 + (int)uVar20" identifier + (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar20 = (ulong)uVar7;" (assignment_expression "uVar20 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13)" ( (binary_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13" (cast_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" ( (binary_expression "DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68" (binary_expression "DAT_00196f08 + 200" identifier + number_literal) + (binary_expression "(ulong)(DAT_00196f14 - 1) * 0x68" (call_expression "(ulong)(DAT_00196f14 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00196f14 - 1)" ( (binary_expression "DAT_00196f14 - 1" identifier - number_literal) ))) * number_literal)) ))) != identifier) )) ;) (if_statement "if (uVar7 == 0) goto LAB_00151839;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00151839;" goto statement_identifier ;)) (expression_statement "__base = (long *)FUN_001594b0(uVar20 << 4);" (assignment_expression "__base = (long *)FUN_001594b0(uVar20 << 4)" identifier = (cast_expression "(long *)FUN_001594b0(uVar20 << 4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001594b0(uVar20 << 4)" identifier (argument_list "(uVar20 << 4)" ( (binary_expression "uVar20 << 4" identifier << number_literal) ))))) ;) (if_statement "if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" if (parenthesized_expression "(DAT_00196f14 != 0)" ( (binary_expression "DAT_00196f14 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" { (expression_statement "uVar9 = DAT_00196f14 - 1;" (assignment_expression "uVar9 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (expression_statement "lVar11 = DAT_00196f08 + 0x68;" (assignment_expression "lVar11 = DAT_00196f08 + 0x68" identifier = (binary_expression "DAT_00196f08 + 0x68" identifier + number_literal)) ;) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" identifier = identifier) ;) (expression_statement "lVar21 = DAT_00196f08;" (assignment_expression "lVar21 = DAT_00196f08" identifier = identifier) ;) (expression_statement "lVar25 = lVar11;" (assignment_expression "lVar25 = lVar11" identifier = identifier) ;) (while_statement "while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" { (if_statement "if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" if (parenthesized_expression "(*(int *)(lVar21 + 0x60) != 0)" ( (binary_expression "*(int *)(lVar21 + 0x60) != 0" (pointer_expression "*(int *)(lVar21 + 0x60)" * (cast_expression "(int *)(lVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + 0x60)" ( (binary_expression "lVar21 + 0x60" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" { (expression_statement "plVar22 = *(long **)(lVar21 + 0x58);" (assignment_expression "plVar22 = *(long **)(lVar21 + 0x58)" identifier = (pointer_expression "*(long **)(lVar21 + 0x58)" * (cast_expression "(long **)(lVar21 + 0x58)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar21 + 0x58)" ( (binary_expression "lVar21 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;" (assignment_expression "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" identifier = (binary_expression "plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" identifier + (binary_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" (parenthesized_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1)" ( (binary_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1) + 1" (call_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(*(int *)(lVar21 + 0x60) - 1)" ( (binary_expression "*(int *)(lVar21 + 0x60) - 1" (pointer_expression "*(int *)(lVar21 + 0x60)" * (cast_expression "(int *)(lVar21 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar21 + 0x60)" ( (binary_expression "lVar21 + 0x60" identifier + number_literal) )))) - number_literal) ))) + number_literal) )) * number_literal))) ;) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" identifier = identifier) ;) (do_statement "do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);" do (compound_statement "{\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        }" { (expression_statement "lVar3 = *plVar22;" (assignment_expression "lVar3 = *plVar22" identifier = (pointer_expression "*plVar22" * identifier)) ;) (expression_statement "plVar15 = plVar14 + 2;" (assignment_expression "plVar15 = plVar14 + 2" identifier = (binary_expression "plVar14 + 2" identifier + number_literal)) ;) (expression_statement "plVar14[1] = lVar21;" (assignment_expression "plVar14[1] = lVar21" (subscript_expression "plVar14[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar22 = plVar22 + 1;" (assignment_expression "plVar22 = plVar22 + 1" identifier = (binary_expression "plVar22 + 1" identifier + number_literal)) ;) (expression_statement "*plVar14 = lVar3;" (assignment_expression "*plVar14 = lVar3" (pointer_expression "*plVar14" * identifier) = identifier) ;) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" identifier = identifier) ;) }) while (parenthesized_expression "(plVar24 != plVar15)" ( (binary_expression "plVar24 != plVar15" identifier != identifier) )) ;) })) (if_statement "if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;" if (parenthesized_expression "(lVar25 == lVar11 + (ulong)uVar9 * 0x68)" ( (binary_expression "lVar25 == lVar11 + (ulong)uVar9 * 0x68" identifier == (binary_expression "lVar11 + (ulong)uVar9 * 0x68" identifier + (binary_expression "(ulong)uVar9 * 0x68" (cast_expression "(ulong)uVar9" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal))) )) (break_statement "break;" break ;)) (expression_statement "lVar21 = lVar25;" (assignment_expression "lVar21 = lVar25" identifier = identifier) ;) (expression_statement "lVar25 = lVar25 + 0x68;" (assignment_expression "lVar25 = lVar25 + 0x68" identifier = (binary_expression "lVar25 + 0x68" identifier + number_literal)) ;) })) })) (expression_statement "qsort(__base,uVar20,0x10,FUN_0013cdc0);" (call_expression "qsort(__base,uVar20,0x10,FUN_0013cdc0)" identifier (argument_list "(__base,uVar20,0x10,FUN_0013cdc0)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" if (parenthesized_expression "(DAT_001946e0 != 0)" ( (binary_expression "DAT_001946e0 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" { (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "lVar11 = *__base;" (assignment_expression "lVar11 = *__base" identifier = (pointer_expression "*__base" * identifier)) ;) (if_statement "if (lVar11 == 0) goto LAB_0015155c;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0015155c;" goto statement_identifier ;)) (expression_statement "uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar19 = 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(uVar19,uVar12,lVar11);" (call_expression "warn(uVar19,uVar12,lVar11)" identifier (argument_list "(uVar19,uVar12,lVar11)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);" statement_identifier : (expression_statement "FUN_0013ed70(uVar12,param_1 + 0x18);" (call_expression "FUN_0013ed70(uVar12,param_1 + 0x18)" identifier (argument_list "(uVar12,param_1 + 0x18)" ( identifier , (binary_expression "param_1 + 0x18" identifier + number_literal) ))) ;)) (expression_statement "pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar16 = (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(pcVar16);" (call_expression "printf(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "pcVar17 = FUN_0013e280;" (assignment_expression "pcVar17 = FUN_0013e280" identifier = identifier) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar17 = FUN_001419e0;\n  }" { (expression_statement "pcVar17 = FUN_001419e0;" (assignment_expression "pcVar17 = FUN_001419e0" identifier = identifier) ;) })) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = uVar2;" (assignment_expression "uVar20 = uVar2" identifier = identifier) ;) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" identifier = identifier) ;) (do_statement "do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);" do (compound_statement "{\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  }" { (while_statement "while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" { (expression_statement "uVar26 = uVar6 & 0xff;" (assignment_expression "uVar26 = uVar6 & 0xff" identifier = (binary_expression "uVar6 & 0xff" identifier & number_literal)) ;) (if_statement "if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }" if (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar26 = *(uint *)plVar15[1];\n      }" { (expression_statement "uVar26 = *(uint *)plVar15[1];" (assignment_expression "uVar26 = *(uint *)plVar15[1]" identifier = (pointer_expression "*(uint *)plVar15[1]" * (cast_expression "(uint *)plVar15[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])))) ;) })) (expression_statement "lVar11 = *plVar15;" (assignment_expression "lVar11 = *plVar15" identifier = (pointer_expression "*plVar15" * identifier)) ;) (expression_statement "uVar28 = uVar2 + lVar11;" (assignment_expression "uVar28 = uVar2 + lVar11" identifier = (binary_expression "uVar2 + lVar11" 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 ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" if (parenthesized_expression "((uVar28 < uVar2) || (uVar1 <= uVar28))" ( (binary_expression "(uVar28 < uVar2) || (uVar1 <= uVar28)" (parenthesized_expression "(uVar28 < uVar2)" ( (binary_expression "uVar28 < uVar2" identifier < identifier) )) || (parenthesized_expression "(uVar1 <= uVar28)" ( (binary_expression "uVar1 <= uVar28" identifier <= identifier) ))) )) (compound_statement "{\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }" { (expression_statement "uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar12 = 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(uVar12,lVar11,uVar9);" (call_expression "warn(uVar12,lVar11,uVar9)" identifier (argument_list "(uVar12,lVar11,uVar9)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" else (compound_statement "{\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" { (expression_statement "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);" (assignment_expression "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6)" identifier = (pointer_expression "*(undefined8 *)((uint *)plVar15[1] + 6)" * (cast_expression "(undefined8 *)((uint *)plVar15[1] + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint *)plVar15[1] + 6)" ( (binary_expression "(uint *)plVar15[1] + 6" (cast_expression "(uint *)plVar15[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar15[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" if (parenthesized_expression "((DAT_001946e0 != 0) && (uVar9 != 0))" ( (binary_expression "(DAT_001946e0 != 0) && (uVar9 != 0)" (parenthesized_expression "(DAT_001946e0 != 0)" ( (binary_expression "DAT_001946e0 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" { (if_statement "if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" if (parenthesized_expression "(local_80 < uVar28)" ( (binary_expression "local_80 < uVar28" identifier < identifier) )) (compound_statement "{\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" { (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = 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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" identifier (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" ( identifier , (binary_expression "local_80 - uVar2" identifier - identifier) , identifier , identifier ))) ;) }) (else_clause "else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" else (if_statement "if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" if (parenthesized_expression "(uVar28 < local_80)" ( (binary_expression "uVar28 < local_80" identifier < identifier) )) (compound_statement "{\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" { (if_statement "if (uVar28 == uVar20) goto LAB_0015168b;" if (parenthesized_expression "(uVar28 == uVar20)" ( (binary_expression "uVar28 == uVar20" identifier == identifier) )) (goto_statement "goto LAB_0015168b;" goto statement_identifier ;)) (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = 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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" identifier (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" ( identifier , (binary_expression "local_80 - uVar2" identifier - identifier) , identifier , identifier ))) ;) })))) })) (expression_statement "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);" (call_expression "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12)" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "(uVar28,uVar1,uVar26,lVar11,uVar12)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar28;" (assignment_expression "uVar20 = uVar28" identifier = identifier) ;) (expression_statement "local_80 = uVar28;" (assignment_expression "local_80 = uVar28" identifier = identifier) ;) }))) (labeled_statement "LAB_0015168b:\n      uVar9 = uVar9 + 1;" statement_identifier : (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;)) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" identifier = (binary_expression "plVar15 + 2" identifier + number_literal)) ;) (if_statement "if (uVar7 == uVar9) goto LAB_00151700;" if (parenthesized_expression "(uVar7 == uVar9)" ( (binary_expression "uVar7 == uVar9" identifier == identifier) )) (goto_statement "goto LAB_00151700;" goto statement_identifier ;)) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" identifier = (binary_expression "plVar15 + 2" identifier + number_literal)) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar12 = 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(uVar12,uVar26,lVar11);" (call_expression "warn(uVar12,uVar26,lVar11)" identifier (argument_list "(uVar12,uVar26,lVar11)" ( identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(uVar7 != uVar9)" ( (binary_expression "uVar7 != uVar9" identifier != identifier) )) ;) (labeled_statement "LAB_00151700:\n  putc(10,stdout);" statement_identifier : (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;)) (expression_statement "free(__base);" (call_expression "free(__base)" identifier (argument_list "(__base)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) 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 * (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) ;) }) (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 )))) ;)) (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 (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < 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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - IDENT) )))) ;)) (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 ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & 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 < 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) ;) }) (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 LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT))) ))) )) (goto_statement goto 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 { (labeled_statement 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 ;) })) (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 = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT)) )) (goto_statement goto 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 = (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 ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT))) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (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 )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (return_statement return LIT ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) ))) + LIT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + 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 ))) ;) (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 = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00151190(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00151190(long param_1,undefined8 param_2)" (identifier "FUN_00151190") (parameter_list "(long param_1,undefined8 param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long lVar3;\n  byte bVar4;\n  short sVar5;\n  uint uVar6;\n  uint uVar7;\n  int iVar8;\n  uint uVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  int *piVar13;\n  long *__base;\n  long *plVar14;\n  long *plVar15;\n  char *pcVar16;\n  code *pcVar17;\n  undefined8 uVar18;\n  undefined8 uVar19;\n  ulong uVar20;\n  long lVar21;\n  long *plVar22;\n  ulong uVar23;\n  long *plVar24;\n  long lVar25;\n  uint uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong local_80;\n  \n  uVar2 = *(ulong *)(param_1 + 0x20);\n  uVar20 = *(ulong *)(param_1 + 0x30);\n  pcVar10 = *(char **)(param_1 + 0x10);\n  uVar1 = uVar2 + uVar20;\n  if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }\n  pcVar10 = strstr(pcVar10,"debug_rnglists");\n  if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }\nLAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);\n  if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }\n  if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }\n  uVar20 = 0;\n  piVar13 = (int *)(DAT_00196f08 + 0x60);\n  do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);\n  if (uVar7 == 0) goto LAB_00151839;\n  __base = (long *)FUN_001594b0(uVar20 << 4);\n  if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }\n  qsort(__base,uVar20,0x10,FUN_0013cdc0);\n  if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }\n  uVar12 = *(undefined8 *)(param_1 + 0x10);\nLAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);\n  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);\n  printf(pcVar16);\n  pcVar17 = FUN_0013e280;\n  if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }\n  uVar9 = 0;\n  uVar20 = uVar2;\n  plVar15 = __base;\n  do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);\nLAB_00151700:\n  putc(10,stdout);\n  free(__base);\n  return 1;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "short sVar5;" (sized_type_specifier "short" (short "short")) (identifier "sVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "long *__base;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*__base" (* "*") (identifier "__base")) (; ";")) (declaration "long *plVar14;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar14" (* "*") (identifier "plVar14")) (; ";")) (declaration "long *plVar15;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar15" (* "*") (identifier "plVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "undefined8 uVar18;" (type_identifier "undefined8") (identifier "uVar18") (; ";")) (declaration "undefined8 uVar19;" (type_identifier "undefined8") (identifier "uVar19") (; ";")) (declaration "ulong uVar20;" (type_identifier "ulong") (identifier "uVar20") (; ";")) (declaration "long lVar21;" (sized_type_specifier "long" (long "long")) (identifier "lVar21") (; ";")) (declaration "long *plVar22;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar22" (* "*") (identifier "plVar22")) (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "long *plVar24;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar24" (* "*") (identifier "plVar24")) (; ";")) (declaration "long lVar25;" (sized_type_specifier "long" (long "long")) (identifier "lVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "ulong uVar27;" (type_identifier "ulong") (identifier "uVar27") (; ";")) (declaration "ulong uVar28;" (type_identifier "ulong") (identifier "uVar28") (; ";")) (declaration "ulong local_80;" (type_identifier "ulong") (identifier "local_80") (; ";")) (expression_statement "uVar2 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar2 = *(ulong *)(param_1 + 0x20)" (identifier "uVar2") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x20)" (* "*") (cast_expression "(ulong *)(param_1 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar20 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar20 = *(ulong *)(param_1 + 0x30)" (identifier "uVar20") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(param_1 + 0x10)" (* "*") (cast_expression "(char **)(param_1 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar1 = uVar2 + uVar20;" (assignment_expression "uVar1 = uVar2 + uVar20" (identifier "uVar1") (= "=") (binary_expression "uVar2 + uVar20" (identifier "uVar2") (+ "+") (identifier "uVar20"))) (; ";")) (if_statement "if (uVar20 == 0) {\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);\n    printf(pcVar16,pcVar10);\n    return 0;\n  }" ({ "{") (expression_statement "pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5)" (identifier "pcVar16") (= "=") (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(pcVar16,pcVar10);" (call_expression "printf(pcVar16,pcVar10)" (identifier "printf") (argument_list "(pcVar16,pcVar10)" (( "(") (identifier "pcVar16") (, ",") (identifier "pcVar10") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar10 = strstr(pcVar10,"debug_rnglists");" (assignment_expression "pcVar10 = strstr(pcVar10,"debug_rnglists")" (identifier "pcVar10") (= "=") (call_expression "strstr(pcVar10,"debug_rnglists")" (identifier "strstr") (argument_list "(pcVar10,"debug_rnglists")" (( "(") (identifier "pcVar10") (, ",") (string_literal ""debug_rnglists"" (" """) (string_content "debug_rnglists") (" """)) () ")")))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\n    uVar6 = 0;\n    local_80 = uVar2;\n  }\n  else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar6 = 0;\n    local_80 = uVar2;\n  }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_80 = uVar2;" (assignment_expression "local_80 = uVar2" (identifier "local_80") (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" (else "else") (compound_statement "{\n    uVar28 = uVar2 + 4;\n    if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }\n    uVar20 = uVar28 + 2;\n    if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;\n    sVar5 = (*DAT_00196f88)(uVar28,lVar11);\n    if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar23 = uVar28 + 3;\n    if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }\n    local_80 = uVar28 + 8;\n    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);\n    if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }\n  }" ({ "{") (expression_statement "uVar28 = uVar2 + 4;" (assignment_expression "uVar28 = uVar2 + 4" (identifier "uVar28") (= "=") (binary_expression "uVar2 + 4" (identifier "uVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar28 < uVar1) {\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }\n    else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" (if "if") (parenthesized_expression "(uVar28 < uVar1)" (( "(") (binary_expression "uVar28 < uVar1" (identifier "uVar28") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      uVar23 = 4;\nLAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);\n      if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }\nLAB_0015120e:\n      uVar28 = uVar23;\n      if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar23 = 4;" (assignment_expression "uVar23 = 4" (identifier "uVar23") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_001511e7:\n      lVar11 = (*DAT_00196f88)(uVar2,uVar23);" (statement_identifier "LAB_001511e7") (: ":") (expression_statement "lVar11 = (*DAT_00196f88)(uVar2,uVar23);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar2,uVar23)" (identifier "lVar11") (= "=") (call_expression "(*DAT_00196f88)(uVar2,uVar23)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar2,uVar23)" (( "(") (identifier "uVar2") (, ",") (identifier "uVar23") () ")")))) (; ";"))) (if_statement "if (lVar11 == 0xffffffff) {\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }\n      else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" (if "if") (parenthesized_expression "(lVar11 == 0xffffffff)" (( "(") (binary_expression "lVar11 == 0xffffffff" (identifier "lVar11") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        uVar23 = uVar2 + 0xc;\n        if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }\n        lVar11 = (*DAT_00196f88)(uVar28,lVar11);\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 0xc;\n        lVar21 = 8;\n      }" ({ "{") (expression_statement "uVar23 = uVar2 + 0xc;" (assignment_expression "uVar23 = uVar2 + 0xc" (identifier "uVar23") (= "=") (binary_expression "uVar2 + 0xc" (identifier "uVar2") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (uVar23 < uVar1) {\n          lVar11 = 8;\n        }\n        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" (if "if") (parenthesized_expression "(uVar23 < uVar1)" (( "(") (binary_expression "uVar23 < uVar1" (identifier "uVar23") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n          lVar11 = 8;\n        }" ({ "{") (expression_statement "lVar11 = 8;" (assignment_expression "lVar11 = 8" (identifier "lVar11") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" (else "else") (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" (if "if") (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U))" (( "(") (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" (( "(") (binary_expression "uVar1 <= uVar28" (identifier "uVar1") (<= "<=") (identifier "uVar28")) () ")")) (|| "||") (parenthesized_expression "(lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)" (( "(") (comma_expression "lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar20 - 4" (identifier "lVar11") (= "=") (binary_expression "uVar20 - 4" (identifier "uVar20") (- "-") (number_literal "4"))) (, ",") (binary_expression "7 < (int)lVar11 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11")) (- "-") (number_literal "1U")))) () ")"))) () ")")) (compound_statement "{\n          uVar27 = *(ulong *)(param_1 + 0x30);\n          uVar20 = 0xc;\n          lVar11 = 0;\n          lVar21 = 8;\n          goto LAB_0015120e;\n        }" ({ "{") (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" (identifier "uVar27") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar20 = 0xc;" (assignment_expression "uVar20 = 0xc" (identifier "uVar20") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" (identifier "lVar21") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_0015120e;" (goto "goto") (statement_identifier "LAB_0015120e") (; ";")) (} "}"))))) (expression_statement "lVar11 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "lVar11 = (*DAT_00196f88)(uVar28,lVar11)" (identifier "lVar11") (= "=") (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar28,lVar11)" (( "(") (identifier "uVar28") (, ",") (identifier "lVar11") () ")")))) (; ";")) (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" (identifier "uVar27") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar20 = lVar11 + 0xc;" (assignment_expression "uVar20 = lVar11 + 0xc" (identifier "uVar20") (= "=") (binary_expression "lVar11 + 0xc" (identifier "lVar11") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "lVar21 = 8;" (assignment_expression "lVar21 = 8" (identifier "lVar21") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else {\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" (else "else") (compound_statement "{\n        uVar27 = *(ulong *)(param_1 + 0x30);\n        uVar20 = lVar11 + 4;\n        lVar21 = 4;\n        uVar23 = uVar28;\n      }" ({ "{") (expression_statement "uVar27 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar27 = *(ulong *)(param_1 + 0x30)" (identifier "uVar27") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar20 = lVar11 + 4;" (assignment_expression "uVar20 = lVar11 + 4" (identifier "uVar20") (= "=") (binary_expression "lVar11 + 4" (identifier "lVar11") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" (identifier "lVar21") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar23 = uVar28;" (assignment_expression "uVar23 = uVar28" (identifier "uVar23") (= "=") (identifier "uVar28")) (; ";")) (} "}")))) (labeled_statement "LAB_0015120e:\n      uVar28 = uVar23;" (statement_identifier "LAB_0015120e") (: ":") (expression_statement "uVar28 = uVar23;" (assignment_expression "uVar28 = uVar23" (identifier "uVar28") (= "=") (identifier "uVar23")) (; ";"))) (if_statement "if (uVar27 < uVar20) {\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" (if "if") (parenthesized_expression "(uVar27 < uVar20)" (( "(") (binary_expression "uVar27 < uVar20" (identifier "uVar27") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\nLAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);\n        if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }\n      }" ({ "{") (labeled_statement "LAB_00151283:\n        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" (statement_identifier "LAB_00151283") (: ":") (expression_statement "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);" (assignment_expression "iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" (identifier "iVar8") (= "=") (call_expression "FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" (identifier "FUN_0013b2b0") (argument_list "(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21)" (( "(") (identifier "param_1") (, ",") (binary_expression "(uVar28 - *(long *)(param_1 + 0x20)) - lVar21" (parenthesized_expression "(uVar28 - *(long *)(param_1 + 0x20))" (( "(") (binary_expression "uVar28 - *(long *)(param_1 + 0x20)" (identifier "uVar28") (- "-") (pointer_expression "*(long *)(param_1 + 0x20)" (* "*") (cast_expression "(long *)(param_1 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (- "-") (identifier "lVar21")) () ")")))) (; ";"))) (if_statement "if (iVar8 == 0) {\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = 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(uVar12,lVar11);\n          return 0;\n        }" ({ "{") (expression_statement "uVar12 = 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 "uVar12 = dcgettext(0,\n                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"\n                             ,5)" (identifier "uVar12") (= "=") (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(uVar12,lVar11);" (call_expression "warn(uVar12,lVar11)" (identifier "warn") (argument_list "(uVar12,lVar11)" (( "(") (identifier "uVar12") (, ",") (identifier "lVar11") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" (else "else") (compound_statement "{\n      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }\n      lVar21 = 4;\n      lVar11 = 0;\n      if (uVar20 < 4) goto LAB_00151283;\n    }" ({ "{") (if_statement "if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" (if "if") (parenthesized_expression "((uVar2 < uVar1) && ((int)uVar20 - 1U < 8))" (( "(") (binary_expression "(uVar2 < uVar1) && ((int)uVar20 - 1U < 8)" (parenthesized_expression "(uVar2 < uVar1)" (( "(") (binary_expression "uVar2 < uVar1" (identifier "uVar2") (< "<") (identifier "uVar1")) () ")")) (&& "&&") (parenthesized_expression "((int)uVar20 - 1U < 8)" (( "(") (binary_expression "(int)uVar20 - 1U < 8" (binary_expression "(int)uVar20 - 1U" (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        uVar23 = uVar20 & 0xffffffff;\n        goto LAB_001511e7;\n      }" ({ "{") (expression_statement "uVar23 = uVar20 & 0xffffffff;" (assignment_expression "uVar23 = uVar20 & 0xffffffff" (identifier "uVar23") (= "=") (binary_expression "uVar20 & 0xffffffff" (identifier "uVar20") (& "&") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_001511e7;" (goto "goto") (statement_identifier "LAB_001511e7") (; ";")) (} "}"))) (expression_statement "lVar21 = 4;" (assignment_expression "lVar21 = 4" (identifier "lVar21") (= "=") (number_literal "4")) (; ";")) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar20 < 4) goto LAB_00151283;" (if "if") (parenthesized_expression "(uVar20 < 4)" (( "(") (binary_expression "uVar20 < 4" (identifier "uVar20") (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_00151283;" (goto "goto") (statement_identifier "LAB_00151283") (; ";"))) (} "}")))) (expression_statement "uVar20 = uVar28 + 2;" (assignment_expression "uVar20 = uVar28 + 2" (identifier "uVar20") (= "=") (binary_expression "uVar28 + 2" (identifier "uVar28") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar20 < uVar1) {\n      lVar11 = 2;\n    }\n    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" (if "if") (parenthesized_expression "(uVar20 < uVar1)" (( "(") (binary_expression "uVar20 < uVar1" (identifier "uVar20") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      lVar11 = 2;\n    }" ({ "{") (expression_statement "lVar11 = 2;" (assignment_expression "lVar11 = 2" (identifier "lVar11") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" (else "else") (if_statement "if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))\n    goto LAB_00151229;" (if "if") (parenthesized_expression "((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))" (( "(") (binary_expression "(uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28)" (( "(") (binary_expression "uVar1 <= uVar28" (identifier "uVar1") (<= "<=") (identifier "uVar28")) () ")")) (|| "||") (parenthesized_expression "(lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U)" (( "(") (comma_expression "lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - uVar28" (identifier "lVar11") (= "=") (binary_expression "uVar1 - uVar28" (identifier "uVar1") (- "-") (identifier "uVar28"))) (, ",") (binary_expression "7 < (int)lVar11 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11")) (- "-") (number_literal "1U")))) () ")"))) () ")")) (goto_statement "goto LAB_00151229;" (goto "goto") (statement_identifier "LAB_00151229") (; ";"))))) (expression_statement "sVar5 = (*DAT_00196f88)(uVar28,lVar11);" (assignment_expression "sVar5 = (*DAT_00196f88)(uVar28,lVar11)" (identifier "sVar5") (= "=") (call_expression "(*DAT_00196f88)(uVar28,lVar11)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar28,lVar11)" (( "(") (identifier "uVar28") (, ",") (identifier "lVar11") () ")")))) (; ";")) (if_statement "if (sVar5 != 5) {\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" (if "if") (parenthesized_expression "(sVar5 != 5)" (( "(") (binary_expression "sVar5 != 5" (identifier "sVar5") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\nLAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);\n      warn(uVar12);\n      return 0;\n    }" ({ "{") (labeled_statement "LAB_00151229:\n      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (statement_identifier "LAB_00151229") (: ":") (expression_statement "uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5)" (identifier "uVar12") (= "=") (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(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar23 = uVar28 + 3;" (assignment_expression "uVar23 = uVar28 + 3" (identifier "uVar23") (= "=") (binary_expression "uVar28 + 3" (identifier "uVar28") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (uVar23 < uVar1) {\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }\n    else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" (if "if") (parenthesized_expression "(uVar23 < uVar1)" (( "(") (binary_expression "uVar23 < uVar1" (identifier "uVar23") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,1);\n      if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }\n      bVar4 = (*DAT_00196f88)(uVar23,lVar11);\n      if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }\n      local_80 = uVar28 + 8;\n      if (local_80 < uVar1) goto LAB_0015134d;\n      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;\n    }" ({ "{") (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,1);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,1)" (identifier "uVar6") (= "=") (call_expression "(*DAT_00196f88)(uVar20,1)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20,1)" (( "(") (identifier "uVar20") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (uVar28 + 4 < uVar1) {\nLAB_001514c7:\n        lVar11 = 1;\n      }\n      else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" (if "if") (parenthesized_expression "(uVar28 + 4 < uVar1)" (( "(") (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" (identifier "uVar28") (+ "+") (number_literal "4")) (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\nLAB_001514c7:\n        lVar11 = 1;\n      }" ({ "{") (labeled_statement "LAB_001514c7:\n        lVar11 = 1;" (statement_identifier "LAB_001514c7") (: ":") (expression_statement "lVar11 = 1;" (assignment_expression "lVar11 = 1" (identifier "lVar11") (= "=") (number_literal "1")) (; ";"))) (} "}")) (else_clause "else {\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" (else "else") (compound_statement "{\n        lVar11 = uVar1 - uVar23;\n        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;\n      }" ({ "{") (expression_statement "lVar11 = uVar1 - uVar23;" (assignment_expression "lVar11 = uVar1 - uVar23" (identifier "lVar11") (= "=") (binary_expression "uVar1 - uVar23" (identifier "uVar1") (- "-") (identifier "uVar23"))) (; ";")) (if_statement "if (7 < (int)lVar11 - 1U) goto LAB_0015133f;" (if "if") (parenthesized_expression "(7 < (int)lVar11 - 1U)" (( "(") (binary_expression "7 < (int)lVar11 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11")) (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_0015133f;" (goto "goto") (statement_identifier "LAB_0015133f") (; ";"))) (} "}")))) (expression_statement "bVar4 = (*DAT_00196f88)(uVar23,lVar11);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar23,lVar11)" (identifier "bVar4") (= "=") (call_expression "(*DAT_00196f88)(uVar23,lVar11)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar23,lVar11)" (( "(") (identifier "uVar23") (, ",") (identifier "lVar11") () ")")))) (; ";")) (if_statement "if (bVar4 != 0) {\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar12 = *(undefined8 *)(param_1 + 0x10);\n        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);\n        uVar7 = (uint)bVar4;\n        goto LAB_001518df;\n      }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);" (assignment_expression "uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5)" (identifier "uVar19") (= "=") (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 "uVar7 = (uint)bVar4;" (assignment_expression "uVar7 = (uint)bVar4" (identifier "uVar7") (= "=") (cast_expression "(uint)bVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar4"))) (; ";")) (goto_statement "goto LAB_001518df;" (goto "goto") (statement_identifier "LAB_001518df") (; ";")) (} "}"))) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" (identifier "local_80") (= "=") (binary_expression "uVar28 + 8" (identifier "uVar28") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (local_80 < uVar1) goto LAB_0015134d;" (if "if") (parenthesized_expression "(local_80 < uVar1)" (( "(") (binary_expression "local_80 < uVar1" (identifier "local_80") (< "<") (identifier "uVar1")) () ")")) (goto_statement "goto LAB_0015134d;" (goto "goto") (statement_identifier "LAB_0015134d") (; ";"))) (if_statement "if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))\n      goto LAB_00151366;" (if "if") (parenthesized_expression "((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))" (( "(") (binary_expression "(uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" (parenthesized_expression "(uVar1 <= uVar28 + 4)" (( "(") (binary_expression "uVar1 <= uVar28 + 4" (identifier "uVar1") (<= "<=") (binary_expression "uVar28 + 4" (identifier "uVar28") (+ "+") (number_literal "4"))) () ")")) (|| "||") (parenthesized_expression "(lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U)" (( "(") (comma_expression "lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U" (assignment_expression "lVar11 = uVar1 - (uVar28 + 4)" (identifier "lVar11") (= "=") (binary_expression "uVar1 - (uVar28 + 4)" (identifier "uVar1") (- "-") (parenthesized_expression "(uVar28 + 4)" (( "(") (binary_expression "uVar28 + 4" (identifier "uVar28") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "7 < (int)lVar11 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar11 - 1U" (cast_expression "(int)lVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar11")) (- "-") (number_literal "1U")))) () ")"))) () ")")) (goto_statement "goto LAB_00151366;" (goto "goto") (statement_identifier "LAB_00151366") (; ";"))) (} "}")) (else_clause "else {\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" (else "else") (compound_statement "{\n      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }\n      if (uVar28 + 4 < uVar1) goto LAB_001514c7;\nLAB_0015133f:\n      local_80 = uVar28 + 8;\n      if (uVar1 <= uVar28 + 8) goto LAB_00151366;\nLAB_0015134d:\n      lVar11 = 4;\n    }" ({ "{") (if_statement "if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }\n      else {\n        uVar6 = 0;\n      }" (if "if") (parenthesized_expression "((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8))" (( "(") (binary_expression "(uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar1)" (( "(") (binary_expression "uVar20 < uVar1" (identifier "uVar20") (< "<") (identifier "uVar1")) () ")")) (&& "&&") (parenthesized_expression "(((int)uVar1 - (int)uVar20) - 1U < 8)" (( "(") (binary_expression "((int)uVar1 - (int)uVar20) - 1U < 8" (binary_expression "((int)uVar1 - (int)uVar20) - 1U" (parenthesized_expression "((int)uVar1 - (int)uVar20)" (( "(") (binary_expression "(int)uVar1 - (int)uVar20" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (- "-") (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        uVar6 = (*DAT_00196f88)(uVar20);\n      }" ({ "{") (expression_statement "uVar6 = (*DAT_00196f88)(uVar20);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20)" (identifier "uVar6") (= "=") (call_expression "(*DAT_00196f88)(uVar20)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20)" (( "(") (identifier "uVar20") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar6 = 0;\n      }" (else "else") (compound_statement "{\n        uVar6 = 0;\n      }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (uVar28 + 4 < uVar1) goto LAB_001514c7;" (if "if") (parenthesized_expression "(uVar28 + 4 < uVar1)" (( "(") (binary_expression "uVar28 + 4 < uVar1" (binary_expression "uVar28 + 4" (identifier "uVar28") (+ "+") (number_literal "4")) (< "<") (identifier "uVar1")) () ")")) (goto_statement "goto LAB_001514c7;" (goto "goto") (statement_identifier "LAB_001514c7") (; ";"))) (labeled_statement "LAB_0015133f:\n      local_80 = uVar28 + 8;" (statement_identifier "LAB_0015133f") (: ":") (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" (identifier "local_80") (= "=") (binary_expression "uVar28 + 8" (identifier "uVar28") (+ "+") (number_literal "8"))) (; ";"))) (if_statement "if (uVar1 <= uVar28 + 8) goto LAB_00151366;" (if "if") (parenthesized_expression "(uVar1 <= uVar28 + 8)" (( "(") (binary_expression "uVar1 <= uVar28 + 8" (identifier "uVar1") (<= "<=") (binary_expression "uVar28 + 8" (identifier "uVar28") (+ "+") (number_literal "8"))) () ")")) (goto_statement "goto LAB_00151366;" (goto "goto") (statement_identifier "LAB_00151366") (; ";"))) (labeled_statement "LAB_0015134d:\n      lVar11 = 4;" (statement_identifier "LAB_0015134d") (: ":") (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" (identifier "lVar11") (= "=") (number_literal "4")) (; ";"))) (} "}")))) (expression_statement "local_80 = uVar28 + 8;" (assignment_expression "local_80 = uVar28 + 8" (identifier "local_80") (= "=") (binary_expression "uVar28 + 8" (identifier "uVar28") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);" (assignment_expression "uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11)" (identifier "uVar7") (= "=") (call_expression "(*DAT_00196f88)(uVar28 + 4,lVar11)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar28 + 4,lVar11)" (( "(") (binary_expression "uVar28 + 4" (identifier "uVar28") (+ "+") (number_literal "4")) (, ",") (identifier "lVar11") () ")")))) (; ";")) (if_statement "if (uVar7 != 0) {\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar12 = *(undefined8 *)(param_1 + 0x10);\n      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);\nLAB_001518df:\n      warn(uVar19,uVar12,uVar7);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);" (assignment_expression "uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5)" (identifier "uVar19") (= "=") (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") () ")")))) (; ";")) (labeled_statement "LAB_001518df:\n      warn(uVar19,uVar12,uVar7);" (statement_identifier "LAB_001518df") (: ":") (expression_statement "warn(uVar19,uVar12,uVar7);" (call_expression "warn(uVar19,uVar12,uVar7)" (identifier "warn") (argument_list "(uVar19,uVar12,uVar7)" (( "(") (identifier "uVar19") (, ",") (identifier "uVar12") (, ",") (identifier "uVar7") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00151366:\n  iVar8 = FUN_00150dc0(param_2);" (statement_identifier "LAB_00151366") (: ":") (expression_statement "iVar8 = FUN_00150dc0(param_2);" (assignment_expression "iVar8 = FUN_00150dc0(param_2)" (identifier "iVar8") (= "=") (call_expression "FUN_00150dc0(param_2)" (identifier "FUN_00150dc0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar8 == 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);\n    warn(uVar19,uVar12);\n    return 0;\n  }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5);" (assignment_expression "uVar19 = dcgettext(0,\n                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"\n                       ,5)" (identifier "uVar19") (= "=") (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") () ")")))) (; ";")) (expression_statement "warn(uVar19,uVar12);" (call_expression "warn(uVar19,uVar12)" (identifier "warn") (argument_list "(uVar19,uVar12)" (( "(") (identifier "uVar19") (, ",") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (DAT_00196f14 == 0) {\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" (if "if") (parenthesized_expression "(DAT_00196f14 == 0)" (( "(") (binary_expression "DAT_00196f14 == 0" (identifier "DAT_00196f14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);\n    printf(pcVar10);\n    return 1;\n  }" ({ "{") (labeled_statement "LAB_00151839:\n    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (statement_identifier "LAB_00151839") (: ":") (expression_statement "pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5)" (identifier "pcVar10") (= "=") (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(pcVar10);" (call_expression "printf(pcVar10)" (identifier "printf") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar13 = (int *)(DAT_00196f08 + 0x60);" (assignment_expression "piVar13 = (int *)(DAT_00196f08 + 0x60)" (identifier "piVar13") (= "=") (cast_expression "(int *)(DAT_00196f08 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00196f08 + 0x60)" (( "(") (binary_expression "DAT_00196f08 + 0x60" (identifier "DAT_00196f08") (+ "+") (number_literal "0x60")) () ")")))) (; ";")) (do_statement "do {\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);" (do "do") (compound_statement "{\n    iVar8 = *piVar13;\n    piVar13 = piVar13 + 0x1a;\n    uVar7 = iVar8 + (int)uVar20;\n    uVar20 = (ulong)uVar7;\n  }" ({ "{") (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" (identifier "iVar8") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "piVar13 = piVar13 + 0x1a;" (assignment_expression "piVar13 = piVar13 + 0x1a" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 0x1a" (identifier "piVar13") (+ "+") (number_literal "0x1a"))) (; ";")) (expression_statement "uVar7 = iVar8 + (int)uVar20;" (assignment_expression "uVar7 = iVar8 + (int)uVar20" (identifier "uVar7") (= "=") (binary_expression "iVar8 + (int)uVar20" (identifier "iVar8") (+ "+") (cast_expression "(int)uVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar20")))) (; ";")) (expression_statement "uVar20 = (ulong)uVar7;" (assignment_expression "uVar20 = (ulong)uVar7" (identifier "uVar20") (= "=") (cast_expression "(ulong)uVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13)" (( "(") (binary_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13" (cast_expression "(int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68)" (( "(") (binary_expression "DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68" (binary_expression "DAT_00196f08 + 200" (identifier "DAT_00196f08") (+ "+") (number_literal "200")) (+ "+") (binary_expression "(ulong)(DAT_00196f14 - 1) * 0x68" (call_expression "(ulong)(DAT_00196f14 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(DAT_00196f14 - 1)" (( "(") (binary_expression "DAT_00196f14 - 1" (identifier "DAT_00196f14") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "0x68"))) () ")"))) (!= "!=") (identifier "piVar13")) () ")")) (; ";")) (if_statement "if (uVar7 == 0) goto LAB_00151839;" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00151839;" (goto "goto") (statement_identifier "LAB_00151839") (; ";"))) (expression_statement "__base = (long *)FUN_001594b0(uVar20 << 4);" (assignment_expression "__base = (long *)FUN_001594b0(uVar20 << 4)" (identifier "__base") (= "=") (cast_expression "(long *)FUN_001594b0(uVar20 << 4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001594b0(uVar20 << 4)" (identifier "FUN_001594b0") (argument_list "(uVar20 << 4)" (( "(") (binary_expression "uVar20 << 4" (identifier "uVar20") (<< "<<") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (DAT_00196f14 != 0) {\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00196f14 != 0)" (( "(") (binary_expression "DAT_00196f14 != 0" (identifier "DAT_00196f14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar9 = DAT_00196f14 - 1;\n    lVar11 = DAT_00196f08 + 0x68;\n    plVar15 = __base;\n    lVar21 = DAT_00196f08;\n    lVar25 = lVar11;\n    while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }\n  }" ({ "{") (expression_statement "uVar9 = DAT_00196f14 - 1;" (assignment_expression "uVar9 = DAT_00196f14 - 1" (identifier "uVar9") (= "=") (binary_expression "DAT_00196f14 - 1" (identifier "DAT_00196f14") (- "-") (number_literal "1"))) (; ";")) (expression_statement "lVar11 = DAT_00196f08 + 0x68;" (assignment_expression "lVar11 = DAT_00196f08 + 0x68" (identifier "lVar11") (= "=") (binary_expression "DAT_00196f08 + 0x68" (identifier "DAT_00196f08") (+ "+") (number_literal "0x68"))) (; ";")) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" (identifier "plVar15") (= "=") (identifier "__base")) (; ";")) (expression_statement "lVar21 = DAT_00196f08;" (assignment_expression "lVar21 = DAT_00196f08" (identifier "lVar21") (= "=") (identifier "DAT_00196f08")) (; ";")) (expression_statement "lVar25 = lVar11;" (assignment_expression "lVar25 = lVar11" (identifier "lVar25") (= "=") (identifier "lVar11")) (; ";")) (while_statement "while( true ) {\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }\n      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;\n      lVar21 = lVar25;\n      lVar25 = lVar25 + 0x68;\n    }" ({ "{") (if_statement "if (*(int *)(lVar21 + 0x60) != 0) {\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" (if "if") (parenthesized_expression "(*(int *)(lVar21 + 0x60) != 0)" (( "(") (binary_expression "*(int *)(lVar21 + 0x60) != 0" (pointer_expression "*(int *)(lVar21 + 0x60)" (* "*") (cast_expression "(int *)(lVar21 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + 0x60)" (( "(") (binary_expression "lVar21 + 0x60" (identifier "lVar21") (+ "+") (number_literal "0x60")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        plVar22 = *(long **)(lVar21 + 0x58);\n        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;\n        plVar14 = plVar15;\n        do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);\n      }" ({ "{") (expression_statement "plVar22 = *(long **)(lVar21 + 0x58);" (assignment_expression "plVar22 = *(long **)(lVar21 + 0x58)" (identifier "plVar22") (= "=") (pointer_expression "*(long **)(lVar21 + 0x58)" (* "*") (cast_expression "(long **)(lVar21 + 0x58)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar21 + 0x58)" (( "(") (binary_expression "lVar21 + 0x58" (identifier "lVar21") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;" (assignment_expression "plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" (identifier "plVar24") (= "=") (binary_expression "plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" (identifier "plVar15") (+ "+") (binary_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2" (parenthesized_expression "((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1)" (( "(") (binary_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1) + 1" (call_expression "(ulong)(*(int *)(lVar21 + 0x60) - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(*(int *)(lVar21 + 0x60) - 1)" (( "(") (binary_expression "*(int *)(lVar21 + 0x60) - 1" (pointer_expression "*(int *)(lVar21 + 0x60)" (* "*") (cast_expression "(int *)(lVar21 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar21 + 0x60)" (( "(") (binary_expression "lVar21 + 0x60" (identifier "lVar21") (+ "+") (number_literal "0x60")) () ")")))) (- "-") (number_literal "1")) () ")"))) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" (identifier "plVar14") (= "=") (identifier "plVar15")) (; ";")) (do_statement "do {\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        } while (plVar24 != plVar15);" (do "do") (compound_statement "{\n          lVar3 = *plVar22;\n          plVar15 = plVar14 + 2;\n          plVar14[1] = lVar21;\n          plVar22 = plVar22 + 1;\n          *plVar14 = lVar3;\n          plVar14 = plVar15;\n        }" ({ "{") (expression_statement "lVar3 = *plVar22;" (assignment_expression "lVar3 = *plVar22" (identifier "lVar3") (= "=") (pointer_expression "*plVar22" (* "*") (identifier "plVar22"))) (; ";")) (expression_statement "plVar15 = plVar14 + 2;" (assignment_expression "plVar15 = plVar14 + 2" (identifier "plVar15") (= "=") (binary_expression "plVar14 + 2" (identifier "plVar14") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "plVar14[1] = lVar21;" (assignment_expression "plVar14[1] = lVar21" (subscript_expression "plVar14[1]" (identifier "plVar14") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "lVar21")) (; ";")) (expression_statement "plVar22 = plVar22 + 1;" (assignment_expression "plVar22 = plVar22 + 1" (identifier "plVar22") (= "=") (binary_expression "plVar22 + 1" (identifier "plVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*plVar14 = lVar3;" (assignment_expression "*plVar14 = lVar3" (pointer_expression "*plVar14" (* "*") (identifier "plVar14")) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "plVar14 = plVar15;" (assignment_expression "plVar14 = plVar15" (identifier "plVar14") (= "=") (identifier "plVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar24 != plVar15)" (( "(") (binary_expression "plVar24 != plVar15" (identifier "plVar24") (!= "!=") (identifier "plVar15")) () ")")) (; ";")) (} "}"))) (if_statement "if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;" (if "if") (parenthesized_expression "(lVar25 == lVar11 + (ulong)uVar9 * 0x68)" (( "(") (binary_expression "lVar25 == lVar11 + (ulong)uVar9 * 0x68" (identifier "lVar25") (== "==") (binary_expression "lVar11 + (ulong)uVar9 * 0x68" (identifier "lVar11") (+ "+") (binary_expression "(ulong)uVar9 * 0x68" (cast_expression "(ulong)uVar9" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar9")) (* "*") (number_literal "0x68")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar21 = lVar25;" (assignment_expression "lVar21 = lVar25" (identifier "lVar21") (= "=") (identifier "lVar25")) (; ";")) (expression_statement "lVar25 = lVar25 + 0x68;" (assignment_expression "lVar25 = lVar25 + 0x68" (identifier "lVar25") (= "=") (binary_expression "lVar25 + 0x68" (identifier "lVar25") (+ "+") (number_literal "0x68"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "qsort(__base,uVar20,0x10,FUN_0013cdc0);" (call_expression "qsort(__base,uVar20,0x10,FUN_0013cdc0)" (identifier "qsort") (argument_list "(__base,uVar20,0x10,FUN_0013cdc0)" (( "(") (identifier "__base") (, ",") (identifier "uVar20") (, ",") (number_literal "0x10") (, ",") (identifier "FUN_0013cdc0") () ")"))) (; ";")) (if_statement "if (DAT_001946e0 != 0) {\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" (if "if") (parenthesized_expression "(DAT_001946e0 != 0)" (( "(") (binary_expression "DAT_001946e0 != 0" (identifier "DAT_001946e0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = *(undefined8 *)(param_1 + 0x10);\n    lVar11 = *__base;\n    if (lVar11 == 0) goto LAB_0015155c;\n    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);\n    warn(uVar19,uVar12,lVar11);\n  }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "lVar11 = *__base;" (assignment_expression "lVar11 = *__base" (identifier "lVar11") (= "=") (pointer_expression "*__base" (* "*") (identifier "__base"))) (; ";")) (if_statement "if (lVar11 == 0) goto LAB_0015155c;" (if "if") (parenthesized_expression "(lVar11 == 0)" (( "(") (binary_expression "lVar11 == 0" (identifier "lVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0015155c;" (goto "goto") (statement_identifier "LAB_0015155c") (; ";"))) (expression_statement "uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);" (assignment_expression "uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5)" (identifier "uVar19") (= "=") (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(uVar19,uVar12,lVar11);" (call_expression "warn(uVar19,uVar12,lVar11)" (identifier "warn") (argument_list "(uVar19,uVar12,lVar11)" (( "(") (identifier "uVar19") (, ",") (identifier "uVar12") (, ",") (identifier "lVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar12 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "LAB_0015155c:\n  FUN_0013ed70(uVar12,param_1 + 0x18);" (statement_identifier "LAB_0015155c") (: ":") (expression_statement "FUN_0013ed70(uVar12,param_1 + 0x18);" (call_expression "FUN_0013ed70(uVar12,param_1 + 0x18)" (identifier "FUN_0013ed70") (argument_list "(uVar12,param_1 + 0x18)" (( "(") (identifier "uVar12") (, ",") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))) (; ";"))) (expression_statement "pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5)" (identifier "pcVar16") (= "=") (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(pcVar16);" (call_expression "printf(pcVar16)" (identifier "printf") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "pcVar17 = FUN_0013e280;" (assignment_expression "pcVar17 = FUN_0013e280" (identifier "pcVar17") (= "=") (identifier "FUN_0013e280")) (; ";")) (if_statement "if (pcVar10 != (char *)0x0) {\n    pcVar17 = FUN_001419e0;\n  }" (if "if") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar17 = FUN_001419e0;\n  }" ({ "{") (expression_statement "pcVar17 = FUN_001419e0;" (assignment_expression "pcVar17 = FUN_001419e0" (identifier "pcVar17") (= "=") (identifier "FUN_001419e0")) (; ";")) (} "}"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = uVar2;" (assignment_expression "uVar20 = uVar2" (identifier "uVar20") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "plVar15 = __base;" (assignment_expression "plVar15 = __base" (identifier "plVar15") (= "=") (identifier "__base")) (; ";")) (do_statement "do {\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  } while (uVar7 != uVar9);" (do "do") (compound_statement "{\n    while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }\n    uVar9 = uVar9 + 1;\n    plVar15 = plVar15 + 2;\n    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);\n    warn(uVar12,uVar26,lVar11);\n  }" ({ "{") (while_statement "while( true ) {\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar26 = uVar6 & 0xff;\n      if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }\n      lVar11 = *plVar15;\n      uVar28 = uVar2 + lVar11;\n      if (6 < uVar26 - 2) break;\n      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }\nLAB_0015168b:\n      uVar9 = uVar9 + 1;\n      plVar15 = plVar15 + 2;\n      if (uVar7 == uVar9) goto LAB_00151700;\n    }" ({ "{") (expression_statement "uVar26 = uVar6 & 0xff;" (assignment_expression "uVar26 = uVar6 & 0xff" (identifier "uVar26") (= "=") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (pcVar10 == (char *)0x0) {\n        uVar26 = *(uint *)plVar15[1];\n      }" (if "if") (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar26 = *(uint *)plVar15[1];\n      }" ({ "{") (expression_statement "uVar26 = *(uint *)plVar15[1];" (assignment_expression "uVar26 = *(uint *)plVar15[1]" (identifier "uVar26") (= "=") (pointer_expression "*(uint *)plVar15[1]" (* "*") (cast_expression "(uint *)plVar15[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}"))) (expression_statement "lVar11 = *plVar15;" (assignment_expression "lVar11 = *plVar15" (identifier "lVar11") (= "=") (pointer_expression "*plVar15" (* "*") (identifier "plVar15"))) (; ";")) (expression_statement "uVar28 = uVar2 + lVar11;" (assignment_expression "uVar28 = uVar2 + lVar11" (identifier "uVar28") (= "=") (binary_expression "uVar2 + lVar11" (identifier "uVar2") (+ "+") (identifier "lVar11"))) (; ";")) (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 ((uVar28 < uVar2) || (uVar1 <= uVar28)) {\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }\n      else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" (if "if") (parenthesized_expression "((uVar28 < uVar2) || (uVar1 <= uVar28))" (( "(") (binary_expression "(uVar28 < uVar2) || (uVar1 <= uVar28)" (parenthesized_expression "(uVar28 < uVar2)" (( "(") (binary_expression "uVar28 < uVar2" (identifier "uVar28") (< "<") (identifier "uVar2")) () ")")) (|| "||") (parenthesized_expression "(uVar1 <= uVar28)" (( "(") (binary_expression "uVar1 <= uVar28" (identifier "uVar1") (<= "<=") (identifier "uVar28")) () ")"))) () ")")) (compound_statement "{\n        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);\n        warn(uVar12,lVar11,uVar9);\n      }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5)" (identifier "uVar12") (= "=") (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(uVar12,lVar11,uVar9);" (call_expression "warn(uVar12,lVar11,uVar9)" (identifier "warn") (argument_list "(uVar12,lVar11,uVar9)" (( "(") (identifier "uVar12") (, ",") (identifier "lVar11") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" (else "else") (compound_statement "{\n        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);\n        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }\n        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);\n        uVar20 = uVar28;\n        local_80 = uVar28;\n      }" ({ "{") (expression_statement "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);" (assignment_expression "uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined8 *)((uint *)plVar15[1] + 6)" (* "*") (cast_expression "(undefined8 *)((uint *)plVar15[1] + 6)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint *)plVar15[1] + 6)" (( "(") (binary_expression "(uint *)plVar15[1] + 6" (cast_expression "(uint *)plVar15[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar15[1]" (identifier "plVar15") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if ((DAT_001946e0 != 0) && (uVar9 != 0)) {\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" (if "if") (parenthesized_expression "((DAT_001946e0 != 0) && (uVar9 != 0))" (( "(") (binary_expression "(DAT_001946e0 != 0) && (uVar9 != 0)" (parenthesized_expression "(DAT_001946e0 != 0)" (( "(") (binary_expression "DAT_001946e0 != 0" (identifier "DAT_001946e0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n        }" ({ "{") (if_statement "if (local_80 < uVar28) {\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }\n          else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" (if "if") (parenthesized_expression "(local_80 < uVar28)" (( "(") (binary_expression "local_80 < uVar28" (identifier "local_80") (< "<") (identifier "uVar28")) () ")")) (compound_statement "{\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" ({ "{") (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar19") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "uVar18") (= "=") (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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" (identifier "warn") (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" (( "(") (identifier "uVar18") (, ",") (binary_expression "local_80 - uVar2" (identifier "local_80") (- "-") (identifier "uVar2")) (, ",") (identifier "lVar11") (, ",") (identifier "uVar19") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" (else "else") (if_statement "if (uVar28 < local_80) {\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" (if "if") (parenthesized_expression "(uVar28 < local_80)" (( "(") (binary_expression "uVar28 < local_80" (identifier "uVar28") (< "<") (identifier "local_80")) () ")")) (compound_statement "{\n            if (uVar28 == uVar20) goto LAB_0015168b;\n            uVar19 = *(undefined8 *)(param_1 + 0x10);\n            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);\n            warn(uVar18,local_80 - uVar2,lVar11,uVar19);\n          }" ({ "{") (if_statement "if (uVar28 == uVar20) goto LAB_0015168b;" (if "if") (parenthesized_expression "(uVar28 == uVar20)" (( "(") (binary_expression "uVar28 == uVar20" (identifier "uVar28") (== "==") (identifier "uVar20")) () ")")) (goto_statement "goto LAB_0015168b;" (goto "goto") (statement_identifier "LAB_0015168b") (; ";"))) (expression_statement "uVar19 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar19 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar19") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);" (assignment_expression "uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5)" (identifier "uVar18") (= "=") (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(uVar18,local_80 - uVar2,lVar11,uVar19);" (call_expression "warn(uVar18,local_80 - uVar2,lVar11,uVar19)" (identifier "warn") (argument_list "(uVar18,local_80 - uVar2,lVar11,uVar19)" (( "(") (identifier "uVar18") (, ",") (binary_expression "local_80 - uVar2" (identifier "local_80") (- "-") (identifier "uVar2")) (, ",") (identifier "lVar11") (, ",") (identifier "uVar19") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);" (call_expression "(*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12)" (parenthesized_expression "(*pcVar17)" (( "(") (pointer_expression "*pcVar17" (* "*") (identifier "pcVar17")) () ")")) (argument_list "(uVar28,uVar1,uVar26,lVar11,uVar12)" (( "(") (identifier "uVar28") (, ",") (identifier "uVar1") (, ",") (identifier "uVar26") (, ",") (identifier "lVar11") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "uVar20 = uVar28;" (assignment_expression "uVar20 = uVar28" (identifier "uVar20") (= "=") (identifier "uVar28")) (; ";")) (expression_statement "local_80 = uVar28;" (assignment_expression "local_80 = uVar28" (identifier "local_80") (= "=") (identifier "uVar28")) (; ";")) (} "}")))) (labeled_statement "LAB_0015168b:\n      uVar9 = uVar9 + 1;" (statement_identifier "LAB_0015168b") (: ":") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" (identifier "plVar15") (= "=") (binary_expression "plVar15 + 2" (identifier "plVar15") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar7 == uVar9) goto LAB_00151700;" (if "if") (parenthesized_expression "(uVar7 == uVar9)" (( "(") (binary_expression "uVar7 == uVar9" (identifier "uVar7") (== "==") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_00151700;" (goto "goto") (statement_identifier "LAB_00151700") (; ";"))) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "plVar15 = plVar15 + 2;" (assignment_expression "plVar15 = plVar15 + 2" (identifier "plVar15") (= "=") (binary_expression "plVar15 + 2" (identifier "plVar15") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5)" (identifier "uVar12") (= "=") (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(uVar12,uVar26,lVar11);" (call_expression "warn(uVar12,uVar26,lVar11)" (identifier "warn") (argument_list "(uVar12,uVar26,lVar11)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar26") (, ",") (identifier "lVar11") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 != uVar9)" (( "(") (binary_expression "uVar7 != uVar9" (identifier "uVar7") (!= "!=") (identifier "uVar9")) () ")")) (; ";")) (labeled_statement "LAB_00151700:\n  putc(10,stdout);" (statement_identifier "LAB_00151700") (: ":") (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";"))) (expression_statement "free(__base);" (call_expression "free(__base)" (identifier "free") (argument_list "(__base)" (( "(") (identifier "__base") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

int function_1(type_1 *section,void *file)

{
  type_2 *var_17;
  type_3 *var_30;
  type_2 *var_8;
  type_2 *var_1;
  type_4 var_34;
  type_5 uVar6;
  type_6 var_14;
  type_7 var_20;
  type_7 var_31;
  char *var_6;
  type_8 var_9;
  type_7 *var_22;
  type_4 *__base;
  type_4 *var_26;
  type_4 *var_25;
  char *pcVar15;
  type_9 *pcVar16;
  char *pcVar17;
  type_10 var_2;
  type_2 *var_7;
  long lVar20;
  type_4 *var_27;
  type_1 *section_1;
  type_1 *extraout_RDX;
  int var_16;
  int var_11;
  type_4 *var_28;
  type_3 *pdVar25;
  type_3 *var_29;
  type_7 var_37;
  type_1 *section_00;
  type_7 var_36;
  type_11 var_12;
  type_2 *var_10;
  type_2 *var_18;
  
  var_1 = section->start;
  var_2 = section->size;
  var_6 = section->name;
  var_8 = var_1 + var_2;
  if (var_2 == 0) {
    pcVar15 = (char *)var_3(0,"\nThe %s section is empty.\n",5);
    var_4(pcVar15,var_6);
    return 0;
  }
  var_6 = var_5(var_6,"debug_rnglists");
  if (var_6 == (char *)0x0) {
    var_36 = 0;
    var_18 = var_1;
  }
  else {
    var_7 = var_1 + 4;
    var_11 = (int)var_2;
    if (var_7 < var_8) {
      var_16 = 4;
LAB_001511e7:
      var_9 = (*byte_get)(var_1,var_16);
      if (var_9 == 0xffffffff) {
        var_10 = var_1 + 0xc;
        if (var_10 < var_8) {
          var_16 = 8;
        }
        else if ((var_8 <= var_7) || (var_16 = var_11 + -4, 7 < var_11 - 5U)) {
          var_12 = section->size;
          var_2 = 0xc;
          var_9 = 0;
          lVar20 = 8;
          goto LAB_0015120e;
        }
        var_9 = (*byte_get)(var_7,var_16);
        var_12 = section->size;
        var_2 = var_9 + 0xc;
        lVar20 = 8;
      }
      else {
        var_12 = section->size;
        var_2 = var_9 + 4;
        lVar20 = 4;
        var_10 = var_7;
      }
LAB_0015120e:
      var_7 = var_10;
      if (var_12 < var_2) {
LAB_00151283:
        var_14 = var_13(section,(type_4)(var_7 + (-lVar20 - (long)section->start)));
        if (var_14 == 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_15(var_6,var_9);
          return 0;
        }
      }
    }
    else {
      if ((var_1 < var_8) && (var_16 = var_11, var_11 - 1U < 8)) goto LAB_001511e7;
      lVar20 = 4;
      var_9 = 0;
      if (var_2 < 4) goto LAB_00151283;
    }
    var_10 = var_7 + 2;
    var_11 = (int)var_8;
    if (var_10 < var_8) {
      var_16 = 2;
    }
    else if ((var_8 <= var_7) || (var_16 = var_11 - (int)var_7, 7 < var_16 - 1U))
    goto LAB_00151229;
    var_9 = (*byte_get)(var_7,var_16);
    if ((short)var_9 != 5) {
LAB_00151229:
      var_6 = (char *)var_3(0,
                                  "Only DWARF version 5 debug_rnglists info is currently supported.\n"
                                  ,5);
      var_15(var_6);
      return 0;
    }
    var_17 = var_7 + 3;
    if (var_17 < var_8) {
      var_9 = (*byte_get)(var_10,1);
      var_36 = (type_7)var_9;
      if (var_7 + 4 < var_8) {
LAB_001514c7:
        var_16 = 1;
      }
      else {
        var_16 = var_11 - (int)var_17;
        if (7 < var_16 - 1U) goto LAB_0015133f;
      }
      var_9 = (*byte_get)(var_17,var_16);
      if ((char)var_9 != '\0') {
        var_6 = section->name;
        pcVar15 = (char *)var_3(0,
                                    "The %s section contains unsupported segment selector size: %d.\n"
                                    ,5);
        var_2 = var_9 & 0xff;
        goto LAB_001518df;
      }
      var_18 = var_7 + 8;
      if (var_18 < var_8) goto LAB_0015134d;
      if ((var_8 <= var_7 + 4) || (var_11 = var_11 - (int)(var_7 + 4), 7 < var_11 - 1U))
      goto LAB_00151366;
    }
    else {
      if ((var_10 < var_8) && (var_16 = var_11 - (int)var_10, var_16 - 1U < 8)) {
        var_9 = (*byte_get)(var_10,var_16);
        var_36 = (type_7)var_9;
      }
      else {
        var_36 = 0;
      }
      if (var_7 + 4 < var_8) goto LAB_001514c7;
LAB_0015133f:
      var_18 = var_7 + 8;
      if (var_8 <= var_7 + 8) goto LAB_00151366;
LAB_0015134d:
      var_11 = 4;
    }
    var_18 = var_7 + 8;
    var_9 = (*byte_get)(var_7 + 4,var_11);
    if ((int)var_9 != 0) {
      var_6 = section->name;
      pcVar15 = (char *)var_3(0,"The %s section contains unsupported offset entry count: %u.\n",
                                  5);
      var_2 = var_9 & 0xffffffff;
LAB_001518df:
      var_15(pcVar15,var_6,var_2);
      return 0;
    }
  }
LAB_00151366:
  var_20 = var_19(file);
  if (var_20 == 0) {
    var_6 = section->name;
    pcVar15 = (char *)var_3(0,
                                "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                                ,5);
    var_15(pcVar15,var_6);
    return 0;
  }
  if (var_21 == 0) {
LAB_00151839:
    var_6 = (char *)var_3(0,"No range lists in .debug_info section.\n",5);
    var_4(var_6);
    return 1;
  }
  var_2 = 0;
  var_22 = &var_24->num_range_lists;
  do {
    var_20 = *var_22;
    var_22 = var_22 + 0x1a;
    var_20 = var_20 + (int)var_2;
    var_2 = (type_10)var_20;
  } while (&var_24[(type_10)(var_21 - 1) + 1].num_range_lists != var_22);
  if (var_20 == 0) goto LAB_00151839;
  __base = (type_4 *)var_23(var_2 << 4);
  if (var_21 != 0) {
    var_31 = var_21 - 1;
    var_30 = var_24 + 1;
    var_25 = __base;
    pdVar25 = var_24;
    var_29 = var_30;
    while( true ) {
      if (pdVar25->num_range_lists != 0) {
        var_27 = pdVar25->range_lists;
        var_28 = var_25 + ((type_10)(pdVar25->num_range_lists - 1) + 1) * 2;
        var_26 = var_25;
        do {
          var_34 = *var_27;
          var_25 = var_26 + 2;
          var_26[1] = (type_4)pdVar25;
          var_27 = var_27 + 1;
          *var_26 = var_34;
          var_26 = var_25;
        } while (var_28 != var_25);
      }
      if (var_29 == var_30 + var_31) break;
      pdVar25 = var_29;
      var_29 = var_29 + 1;
    }
  }
  var_32(__base,var_2,0x10,range_entry_compar);
  section_1 = (type_1 *)(type_10)(type_7)var_33;
  if (var_33 != 0) {
    section_00 = (type_1 *)section->name;
    var_34 = *__base;
    if (var_34 == 0) goto LAB_0015155c;
    pcVar15 = (char *)var_3(0,"Range lists in %s section start at 0x%lx\n",5);
    var_15(pcVar15,section_00,var_34);
    section_1 = extraout_RDX;
  }
  section_00 = (type_1 *)section->name;
LAB_0015155c:
  var_35(section_00,(int)section + 0x18,section_1);
  pcVar15 = (char *)var_3(0,"    Offset   Begin    End\n",5);
  var_4(pcVar15);
  pcVar16 = display_debug_ranges_list;
  if (var_6 != (char *)0x0) {
    pcVar16 = display_debug_rnglists_list;
  }
  var_31 = 0;
  var_7 = var_1;
  var_25 = __base;
  do {
    while( true ) {
      var_37 = var_36 & 0xff;
      if (var_6 == (char *)0x0) {
        var_37 = *(type_7 *)var_25[1];
      }
      var_34 = *var_25;
      var_10 = var_1 + var_34;
      if (6 < var_37 - 2) break;
      if ((var_10 < var_1) || (var_8 <= var_10)) {
        pcVar15 = (char *)var_3(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
        var_15(pcVar15,var_34,(type_10)var_31);
      }
      else {
        uVar6 = *(type_5 *)((type_7 *)var_25[1] + 6);
        if ((var_33 != 0) && (var_31 != 0)) {
          if (var_18 < var_10) {
            pcVar15 = section->name;
            pcVar17 = (char *)var_3(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
            var_15(pcVar17,(long)var_18 - (long)var_1,var_34,pcVar15);
          }
          else if (var_10 < var_18) {
            if (var_10 == var_7) goto LAB_0015168b;
            pcVar15 = section->name;
            pcVar17 = (char *)var_3(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
            var_15(pcVar17,(long)var_18 - (long)var_1,var_34,pcVar15);
          }
        }
        (*pcVar16)(var_10,var_8,var_37,var_34,uVar6);
        var_7 = var_10;
        var_18 = var_10;
      }
LAB_0015168b:
      var_31 = var_31 + 1;
      var_25 = var_25 + 2;
      if (var_20 == var_31) goto LAB_00151700;
    }
    var_31 = var_31 + 1;
    var_25 = var_25 + 2;
    pcVar15 = (char *)var_3(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
    var_15(pcVar15,(type_10)var_37,var_34);
  } while (var_20 != var_31);
LAB_00151700:
  var_38(10,stdout);
  var_39(__base);
  return 1;
}


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

undefined4 MASKED(long param_1,undefined8 param_2)

{
  ulong uVar1;
  ulong uVar2;
  long lVar3;
  byte bVar4;
  short sVar5;
  uint uVar6;
  uint uVar7;
  int iVar8;
  uint uVar9;
  char *pcVar10;
  long lVar11;
  undefined8 uVar12;
  int *piVar13;
  long *__base;
  long *plVar14;
  long *plVar15;
  char *pcVar16;
  code *pcVar17;
  undefined8 uVar18;
  undefined8 uVar19;
  ulong uVar20;
  long lVar21;
  long *plVar22;
  ulong uVar23;
  long *plVar24;
  long lVar25;
  uint uVar26;
  ulong uVar27;
  ulong uVar28;
  ulong local_80;
  
  uVar2 = *(ulong *)(param_1 + 0x20);
  uVar20 = *(ulong *)(param_1 + 0x30);
  pcVar10 = *(char **)(param_1 + 0x10);
  uVar1 = uVar2 + uVar20;
  if (uVar20 == 0) {
    pcVar16 = (char *)dcgettext(0,"\nThe %s section is empty.\n",5);
    printf(pcVar16,pcVar10);
    return 0;
  }
  pcVar10 = strstr(pcVar10,"debug_rnglists");
  if (pcVar10 == (char *)0x0) {
    uVar6 = 0;
    local_80 = uVar2;
  }
  else {
    uVar28 = uVar2 + 4;
    if (uVar28 < uVar1) {
      uVar23 = 4;
LAB_001511e7:
      lVar11 = (*DAT_00196f88)(uVar2,uVar23);
      if (lVar11 == 0xffffffff) {
        uVar23 = uVar2 + 0xc;
        if (uVar23 < uVar1) {
          lVar11 = 8;
        }
        else if ((uVar1 <= uVar28) || (lVar11 = uVar20 - 4, 7 < (int)lVar11 - 1U)) {
          uVar27 = *(ulong *)(param_1 + 0x30);
          uVar20 = 0xc;
          lVar11 = 0;
          lVar21 = 8;
          goto LAB_0015120e;
        }
        lVar11 = (*DAT_00196f88)(uVar28,lVar11);
        uVar27 = *(ulong *)(param_1 + 0x30);
        uVar20 = lVar11 + 0xc;
        lVar21 = 8;
      }
      else {
        uVar27 = *(ulong *)(param_1 + 0x30);
        uVar20 = lVar11 + 4;
        lVar21 = 4;
        uVar23 = uVar28;
      }
LAB_0015120e:
      uVar28 = uVar23;
      if (uVar27 < uVar20) {
LAB_00151283:
        iVar8 = FUN_0013b2b0(param_1,(uVar28 - *(long *)(param_1 + 0x20)) - lVar21);
        if (iVar8 == 0) {
          uVar12 = dcgettext(0,
                             "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
                             ,5);
          warn(uVar12,lVar11);
          return 0;
        }
      }
    }
    else {
      if ((uVar2 < uVar1) && ((int)uVar20 - 1U < 8)) {
        uVar23 = uVar20 & 0xffffffff;
        goto LAB_001511e7;
      }
      lVar21 = 4;
      lVar11 = 0;
      if (uVar20 < 4) goto LAB_00151283;
    }
    uVar20 = uVar28 + 2;
    if (uVar20 < uVar1) {
      lVar11 = 2;
    }
    else if ((uVar1 <= uVar28) || (lVar11 = uVar1 - uVar28, 7 < (int)lVar11 - 1U))
    goto LAB_00151229;
    sVar5 = (*DAT_00196f88)(uVar28,lVar11);
    if (sVar5 != 5) {
LAB_00151229:
      uVar12 = dcgettext(0,"Only DWARF version 5 debug_rnglists info is currently supported.\n",5);
      warn(uVar12);
      return 0;
    }
    uVar23 = uVar28 + 3;
    if (uVar23 < uVar1) {
      uVar6 = (*DAT_00196f88)(uVar20,1);
      if (uVar28 + 4 < uVar1) {
LAB_001514c7:
        lVar11 = 1;
      }
      else {
        lVar11 = uVar1 - uVar23;
        if (7 < (int)lVar11 - 1U) goto LAB_0015133f;
      }
      bVar4 = (*DAT_00196f88)(uVar23,lVar11);
      if (bVar4 != 0) {
        uVar12 = *(undefined8 *)(param_1 + 0x10);
        uVar19 = dcgettext(0,"The %s section contains unsupported segment selector size: %d.\n",5);
        uVar7 = (uint)bVar4;
        goto LAB_001518df;
      }
      local_80 = uVar28 + 8;
      if (local_80 < uVar1) goto LAB_0015134d;
      if ((uVar1 <= uVar28 + 4) || (lVar11 = uVar1 - (uVar28 + 4), 7 < (int)lVar11 - 1U))
      goto LAB_00151366;
    }
    else {
      if ((uVar20 < uVar1) && (((int)uVar1 - (int)uVar20) - 1U < 8)) {
        uVar6 = (*DAT_00196f88)(uVar20);
      }
      else {
        uVar6 = 0;
      }
      if (uVar28 + 4 < uVar1) goto LAB_001514c7;
LAB_0015133f:
      local_80 = uVar28 + 8;
      if (uVar1 <= uVar28 + 8) goto LAB_00151366;
LAB_0015134d:
      lVar11 = 4;
    }
    local_80 = uVar28 + 8;
    uVar7 = (*DAT_00196f88)(uVar28 + 4,lVar11);
    if (uVar7 != 0) {
      uVar12 = *(undefined8 *)(param_1 + 0x10);
      uVar19 = dcgettext(0,"The %s section contains unsupported offset entry count: %u.\n",5);
LAB_001518df:
      warn(uVar19,uVar12,uVar7);
      return 0;
    }
  }
LAB_00151366:
  iVar8 = FUN_00150dc0(param_2);
  if (iVar8 == 0) {
    uVar12 = *(undefined8 *)(param_1 + 0x10);
    uVar19 = dcgettext(0,
                       "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
                       ,5);
    warn(uVar19,uVar12);
    return 0;
  }
  if (DAT_00196f14 == 0) {
LAB_00151839:
    pcVar10 = (char *)dcgettext(0,"No range lists in .debug_info section.\n",5);
    printf(pcVar10);
    return 1;
  }
  uVar20 = 0;
  piVar13 = (int *)(DAT_00196f08 + 0x60);
  do {
    iVar8 = *piVar13;
    piVar13 = piVar13 + 0x1a;
    uVar7 = iVar8 + (int)uVar20;
    uVar20 = (ulong)uVar7;
  } while ((int *)(DAT_00196f08 + 200 + (ulong)(DAT_00196f14 - 1) * 0x68) != piVar13);
  if (uVar7 == 0) goto LAB_00151839;
  __base = (long *)FUN_001594b0(uVar20 << 4);
  if (DAT_00196f14 != 0) {
    uVar9 = DAT_00196f14 - 1;
    lVar11 = DAT_00196f08 + 0x68;
    plVar15 = __base;
    lVar21 = DAT_00196f08;
    lVar25 = lVar11;
    while( true ) {
      if (*(int *)(lVar21 + 0x60) != 0) {
        plVar22 = *(long **)(lVar21 + 0x58);
        plVar24 = plVar15 + ((ulong)(*(int *)(lVar21 + 0x60) - 1) + 1) * 2;
        plVar14 = plVar15;
        do {
          lVar3 = *plVar22;
          plVar15 = plVar14 + 2;
          plVar14[1] = lVar21;
          plVar22 = plVar22 + 1;
          *plVar14 = lVar3;
          plVar14 = plVar15;
        } while (plVar24 != plVar15);
      }
      if (lVar25 == lVar11 + (ulong)uVar9 * 0x68) break;
      lVar21 = lVar25;
      lVar25 = lVar25 + 0x68;
    }
  }
  qsort(__base,uVar20,0x10,FUN_0013cdc0);
  if (DAT_001946e0 != 0) {
    uVar12 = *(undefined8 *)(param_1 + 0x10);
    lVar11 = *__base;
    if (lVar11 == 0) goto LAB_0015155c;
    uVar19 = dcgettext(0,"Range lists in %s section start at 0x%lx\n",5);
    warn(uVar19,uVar12,lVar11);
  }
  uVar12 = *(undefined8 *)(param_1 + 0x10);
LAB_0015155c:
  FUN_0013ed70(uVar12,param_1 + 0x18);
  pcVar16 = (char *)dcgettext(0,"    Offset   Begin    End\n",5);
  printf(pcVar16);
  pcVar17 = FUN_0013e280;
  if (pcVar10 != (char *)0x0) {
    pcVar17 = FUN_001419e0;
  }
  uVar9 = 0;
  uVar20 = uVar2;
  plVar15 = __base;
  do {
    while( true ) {
      uVar26 = uVar6 & 0xff;
      if (pcVar10 == (char *)0x0) {
        uVar26 = *(uint *)plVar15[1];
      }
      lVar11 = *plVar15;
      uVar28 = uVar2 + lVar11;
      if (6 < uVar26 - 2) break;
      if ((uVar28 < uVar2) || (uVar1 <= uVar28)) {
        uVar12 = dcgettext(0,"Corrupt offset (%#8.8lx) in range entry %u\n",5);
        warn(uVar12,lVar11,uVar9);
      }
      else {
        uVar12 = *(undefined8 *)((uint *)plVar15[1] + 6);
        if ((DAT_001946e0 != 0) && (uVar9 != 0)) {
          if (local_80 < uVar28) {
            uVar19 = *(undefined8 *)(param_1 + 0x10);
            uVar18 = dcgettext(0,"There is a hole [0x%lx - 0x%lx] in %s section.\n",5);
            warn(uVar18,local_80 - uVar2,lVar11,uVar19);
          }
          else if (uVar28 < local_80) {
            if (uVar28 == uVar20) goto LAB_0015168b;
            uVar19 = *(undefined8 *)(param_1 + 0x10);
            uVar18 = dcgettext(0,"There is an overlap [0x%lx - 0x%lx] in %s section.\n",5);
            warn(uVar18,local_80 - uVar2,lVar11,uVar19);
          }
        }
        (*pcVar17)(uVar28,uVar1,uVar26,lVar11,uVar12);
        uVar20 = uVar28;
        local_80 = uVar28;
      }
LAB_0015168b:
      uVar9 = uVar9 + 1;
      plVar15 = plVar15 + 2;
      if (uVar7 == uVar9) goto LAB_00151700;
    }
    uVar9 = uVar9 + 1;
    plVar15 = plVar15 + 2;
    uVar12 = dcgettext(0,"Corrupt pointer size (%d) in debug entry at offset %8.8lx\n",5);
    warn(uVar12,uVar26,lVar11);
  } while (uVar7 != uVar9);
LAB_00151700:
  putc(10,stdout);
  free(__base);
  return 1;
}

