
int display_debug_aranges(dwarf_section *section,void *file)

{
  uchar *puVar1;
  uchar *puVar2;
  int iVar3;
  int iVar4;
  ushort uVar5;
  ulong uVar6;
  elf_vma eVar7;
  char *pcVar8;
  elf_vma eVar9;
  elf_vma eVar10;
  dwarf_vma *pdVar11;
  char *message;
  char *pcVar12;
  dwarf_section *in_RDX;
  long lVar13;
  ushort uVar14;
  uint num_bytes;
  uint uVar15;
  int iVar16;
  uint uVar17;
  ulong uVar18;
  long lVar19;
  uchar *puVar20;
  uchar *puVar21;
  uchar *puVar22;
  elf_vma local_70;
  byte local_60;
  long local_58;
  
  puVar2 = section->start;
  puVar22 = puVar2 + section->size;
  introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX);
  load_debug_info(file);
  do {
    if (puVar22 <= puVar2) {
LAB_00154063:
      putchar(10);
      return 1;
    }
    puVar21 = puVar2 + 4;
    iVar4 = (int)puVar22;
    if (puVar21 < puVar22) {
      iVar16 = 4;
LAB_0015408d:
      eVar9 = (*byte_get)(puVar2,iVar16);
      if (eVar9 == 0xffffffff) {
        puVar20 = puVar2 + 0xc;
        if (puVar20 < puVar22) {
          iVar16 = 8;
        }
        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {
          local_58 = 0xc;
          lVar19 = 8;
          goto LAB_00153d5a;
        }
        lVar19 = 8;
        eVar9 = (*byte_get)(puVar21,iVar16);
        local_58 = 0xc;
        puVar21 = puVar20;
      }
      else {
        local_58 = 4;
        lVar19 = 4;
      }
      uVar18 = (long)puVar21 - (long)section->start;
      uVar6 = eVar9 + uVar18;
      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;
LAB_001542aa:
      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);
      pcVar8 = section->name;
      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(message,pcVar8,uVar18 - local_58,pcVar12);
      goto LAB_00154063;
    }
    iVar16 = iVar4 - (int)puVar2;
    if (iVar16 - 1U < 8) goto LAB_0015408d;
    local_58 = 4;
    lVar19 = 4;
    puVar20 = puVar21;
LAB_00153d5a:
    eVar9 = 0;
    uVar6 = (long)puVar20 - (long)section->start;
    puVar21 = puVar20;
    uVar18 = uVar6;
LAB_00153d6b:
    iVar16 = (int)lVar19;
    if (section->size < uVar6) goto LAB_001542aa;
    puVar20 = puVar21 + 2;
    if (puVar20 < puVar22) {
      eVar10 = (*byte_get)(puVar21,2);
      uVar14 = (ushort)eVar10;
      if (puVar22 <= puVar20 + lVar19) {
        local_70._0_2_ = uVar14 - 2;
        iVar16 = iVar4 - (int)puVar20;
        uVar5 = uVar14;
        if (iVar16 - 1U < 8) goto LAB_00154130;
        goto LAB_00153dbc;
      }
LAB_00154260:
      local_70._0_2_ = uVar14 - 2;
      uVar5 = uVar14;
LAB_00154130:
      uVar14 = uVar5;
      eVar10 = (*byte_get)(puVar20,iVar16);
      uVar17 = num_debug_info_entries - 1;
      if (uVar17 < 0xfffffffe) goto LAB_0015415b;
LAB_00153dce:
      puVar21 = puVar20 + lVar19 + 1;
      if (puVar22 <= puVar21) goto LAB_00153ddb;
LAB_001541d0:
      eVar7 = (*byte_get)(puVar20 + lVar19,1);
      iVar16 = 1;
      local_60 = (byte)eVar7;
      puVar20 = puVar20 + lVar19 + 2;
      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))
      goto LAB_0015421a;
LAB_00153e09:
      eVar7 = (*byte_get)(puVar21,iVar16);
      uVar18 = eVar7 & 0xffffffff;
LAB_00153e15:
      if ((ushort)local_70 < 2) goto LAB_00153e21;
LAB_00154229:
      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";
      if (uVar14 != 0) {
LAB_0015423e:
        pcVar8 = (char *)dcgettext(0,pcVar8,5);
        warn(pcVar8);
      }
      goto LAB_00154063;
    }
    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {
      eVar10 = (*byte_get)(puVar21,iVar3);
      uVar14 = (ushort)eVar10;
      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;
      local_70._0_2_ = uVar14 - 2;
    }
    else {
      uVar14 = 0;
      local_70._0_2_ = 0xfffe;
      uVar5 = 0;
      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;
    }
LAB_00153dbc:
    eVar10 = 0;
    uVar17 = num_debug_info_entries - 1;
    if (0xfffffffd < uVar17) goto LAB_00153dce;
LAB_0015415b:
    pdVar11 = &debug_information->cu_offset;
    do {
      if (eVar10 == *pdVar11) goto LAB_00153dce;
      pdVar11 = pdVar11 + 0xd;
    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);
    pcVar8 = section->name;
    pcVar12 = (char *)dcgettext(0,
                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                ,5);
    warn(pcVar12,eVar10,pcVar8);
    puVar21 = puVar20 + lVar19 + 1;
    if (puVar21 < puVar22) goto LAB_001541d0;
LAB_00153ddb:
    puVar20 = puVar20 + lVar19;
    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {
      uVar18 = 0;
      eVar7 = (*byte_get)(puVar20,iVar16);
      local_60 = (byte)eVar7;
      puVar20 = puVar20 + 2;
      if (puVar20 < puVar22) {
        iVar16 = 1;
        goto LAB_00153e09;
      }
      goto LAB_00153e15;
    }
    puVar20 = puVar20 + 2;
    if (puVar20 < puVar22) {
      local_60 = 0;
      iVar16 = 1;
      goto LAB_00153e09;
    }
    local_60 = 0;
LAB_0015421a:
    uVar18 = 0;
    if (1 < (ushort)local_70) goto LAB_00154229;
LAB_00153e21:
    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);
    printf(pcVar8,eVar9);
    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);
    printf(pcVar8,(ulong)uVar14);
    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);
    printf(pcVar8,eVar10);
    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);
    printf(pcVar8);
    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);
    uVar17 = (int)uVar18 + (uint)local_60;
    printf(pcVar8,uVar18 & 0xff);
    if (7 < (byte)((byte)uVar17 - 1)) {
      pcVar8 = section->name;
      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);
      error(pcVar12,pcVar8);
      goto LAB_00154063;
    }
    num_bytes = uVar17 & 0xff;
    if ((num_bytes - 1 & num_bytes) != 0) {
      pcVar8 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_0015423e;
    }
    pcVar8 = "\n    Address            Length\n";
    if ((byte)uVar17 < 5) {
      pcVar8 = "\n    Address    Length\n";
    }
    pcVar8 = (char *)dcgettext(0,pcVar8,5);
    printf(pcVar8);
    lVar19 = (long)(int)(num_bytes * 2);
    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;
    if (lVar13 != 0) {
      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);
    }
    puVar2 = puVar2 + eVar9 + local_58;
    if (puVar20 + lVar19 <= puVar2) {
      uVar18 = (ulong)(uVar17 & 0xff);
      puVar21 = puVar20 + uVar18;
      do {
        puVar1 = puVar20 + uVar18 * 2;
        uVar17 = num_bytes;
        uVar15 = num_bytes;
        if ((puVar21 < puVar22) ||
           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {
          local_70 = (*byte_get)(puVar20,uVar17);
          if ((puVar22 <= puVar1) &&
             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))
          goto LAB_00153fad;
LAB_00154042:
          eVar9 = (*byte_get)(puVar21,uVar15);
        }
        else {
          local_70 = 0;
          if (puVar1 < puVar22) goto LAB_00154042;
LAB_00153fad:
          eVar9 = 0;
        }
        puVar21 = puVar21 + uVar18 * 2;
        printf("    ");
        print_dwarf_vma(local_70,num_bytes);
        print_dwarf_vma(eVar9,num_bytes);
        putc(10,stdout);
        puVar20 = puVar1;
      } while (puVar21 + (lVar19 - uVar18) <= puVar2);
    }
  } while( true );
}



undefined8 FUN_00153ce0(long param_1,undefined8 param_2)

{
  ulong uVar1;
  int iVar2;
  ushort uVar3;
  byte bVar4;
  char cVar5;
  ushort uVar6;
  ulong uVar7;
  char *pcVar8;
  undefined8 uVar9;
  ulong uVar10;
  long *plVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  uint uVar14;
  long lVar15;
  long lVar16;
  byte bVar17;
  ulong uVar18;
  ulong uVar19;
  ulong uVar20;
  ulong uVar21;
  undefined8 local_70;
  long local_58;
  
  uVar1 = *(ulong *)(param_1 + 0x20);
  uVar21 = *(long *)(param_1 + 0x30) + uVar1;
  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);
  FUN_00150dc0(param_2);
  do {
    if (uVar21 <= uVar1) {
LAB_00154063:
      putchar(10);
      return 1;
    }
    uVar20 = uVar1 + 4;
    if (uVar20 < uVar21) {
      lVar15 = 4;
LAB_0015408d:
      uVar10 = (*DAT_00196f88)(uVar1,lVar15);
      if (uVar10 == 0xffffffff) {
        uVar18 = uVar1 + 0xc;
        if (uVar18 < uVar21) {
          lVar15 = 8;
        }
        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {
          local_58 = 0xc;
          uVar19 = 8;
          goto LAB_00153d5a;
        }
        uVar19 = 8;
        uVar10 = (*DAT_00196f88)(uVar20,lVar15);
        local_58 = 0xc;
        uVar20 = uVar18;
      }
      else {
        local_58 = 4;
        uVar19 = 4;
      }
      uVar18 = uVar20 - *(long *)(param_1 + 0x20);
      uVar7 = uVar10 + uVar18;
      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;
LAB_001542aa:
      uVar13 = FUN_0013d1e0("x",uVar10,0);
      uVar9 = *(undefined8 *)(param_1 + 0x10);
      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar12,uVar9,uVar18 - local_58,uVar13);
      goto LAB_00154063;
    }
    lVar15 = uVar21 - uVar1;
    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;
    local_58 = 4;
    uVar19 = 4;
    uVar18 = uVar20;
LAB_00153d5a:
    uVar10 = 0;
    uVar7 = uVar18 - *(long *)(param_1 + 0x20);
    uVar20 = uVar18;
    uVar18 = uVar7;
LAB_00153d6b:
    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;
    uVar18 = uVar20 + 2;
    iVar2 = (int)uVar21;
    uVar7 = uVar19;
    if (uVar18 < uVar21) {
      uVar6 = (*DAT_00196f88)(uVar20,2);
      if (uVar21 <= uVar19 + uVar18) {
        local_70._0_2_ = uVar6 - 2;
        uVar14 = iVar2 - (int)uVar18;
        uVar7 = (ulong)uVar14;
        uVar3 = uVar6;
        if (uVar14 - 1 < 8) goto LAB_00154130;
        goto LAB_00153dbc;
      }
LAB_00154260:
      local_70._0_2_ = uVar6 - 2;
      uVar3 = uVar6;
LAB_00154130:
      uVar6 = uVar3;
      lVar15 = (*DAT_00196f88)(uVar18,uVar7);
      uVar14 = DAT_00196f14 - 1;
      if (uVar14 < 0xfffffffe) goto LAB_0015415b;
LAB_00153dce:
      uVar20 = uVar19 + uVar18 + 1;
      if (uVar21 <= uVar20) goto LAB_00153ddb;
LAB_001541d0:
      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);
      lVar16 = 1;
      uVar19 = uVar19 + uVar18 + 2;
      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;
LAB_00153e09:
      bVar4 = (*DAT_00196f88)(uVar20,lVar16);
LAB_00153e15:
      if ((ushort)local_70 < 2) goto LAB_00153e21;
LAB_00154229:
      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";
      if (uVar6 != 0) {
LAB_0015423e:
        uVar9 = dcgettext(0,pcVar8,5);
        warn(uVar9);
      }
      goto LAB_00154063;
    }
    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {
      uVar6 = (*DAT_00196f88)(uVar20);
      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;
      local_70._0_2_ = uVar6 - 2;
    }
    else {
      uVar6 = 0;
      local_70._0_2_ = 0xfffe;
      uVar3 = 0;
      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;
    }
LAB_00153dbc:
    lVar15 = 0;
    uVar14 = DAT_00196f14 - 1;
    if (0xfffffffd < uVar14) goto LAB_00153dce;
LAB_0015415b:
    plVar11 = (long *)(DAT_00196f08 + 0x10);
    do {
      if (lVar15 == *plVar11) goto LAB_00153dce;
      plVar11 = plVar11 + 0xd;
    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));
    uVar9 = *(undefined8 *)(param_1 + 0x10);
    uVar13 = dcgettext(0,
                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",
                       5);
    warn(uVar13,lVar15,uVar9);
    uVar20 = uVar19 + uVar18 + 1;
    if (uVar20 < uVar21) goto LAB_001541d0;
LAB_00153ddb:
    uVar19 = uVar19 + uVar18;
    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {
      bVar4 = 0;
      cVar5 = (*DAT_00196f88)(uVar19);
      uVar19 = uVar19 + 2;
      if (uVar19 < uVar21) {
        lVar16 = 1;
        goto LAB_00153e09;
      }
      goto LAB_00153e15;
    }
    uVar19 = uVar19 + 2;
    if (uVar19 < uVar21) {
      cVar5 = '\0';
      lVar16 = 1;
      goto LAB_00153e09;
    }
    cVar5 = '\0';
LAB_0015421a:
    bVar4 = 0;
    if (1 < (ushort)local_70) goto LAB_00154229;
LAB_00153e21:
    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);
    printf(pcVar8,uVar10);
    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);
    printf(pcVar8,(ulong)uVar6);
    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);
    printf(pcVar8,lVar15);
    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);
    printf(pcVar8);
    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);
    bVar17 = bVar4 + cVar5;
    printf(pcVar8,(ulong)bVar4);
    if (7 < (byte)(bVar17 - 1)) {
      uVar9 = *(undefined8 *)(param_1 + 0x10);
      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);
      error(uVar13,uVar9);
      goto LAB_00154063;
    }
    uVar14 = (uint)bVar17;
    if ((uVar14 - 1 & uVar14) != 0) {
      pcVar8 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_0015423e;
    }
    pcVar8 = "\n    Address            Length\n";
    if (bVar17 < 5) {
      pcVar8 = "\n    Address    Length\n";
    }
    pcVar8 = (char *)dcgettext(0,pcVar8,5);
    printf(pcVar8);
    lVar15 = (long)(int)(uVar14 * 2);
    lVar16 = (long)(uVar19 - uVar1) % lVar15;
    if (lVar16 != 0) {
      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);
    }
    uVar1 = uVar1 + uVar10 + local_58;
    if (lVar15 + uVar19 <= uVar1) {
      uVar10 = (ulong)bVar17;
      uVar20 = uVar19 + uVar10;
      do {
        uVar18 = uVar19 + uVar10 * 2;
        if (uVar20 < uVar21) {
          uVar7 = (ulong)uVar14;
LAB_0015400e:
          local_70 = (*DAT_00196f88)(uVar19,uVar7);
          if (uVar18 < uVar21) goto LAB_00154040;
          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))
          goto LAB_00154042;
LAB_00153fad:
          uVar9 = 0;
        }
        else {
          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))
          goto LAB_0015400e;
          local_70 = 0;
          if (uVar21 <= uVar18) goto LAB_00153fad;
LAB_00154040:
          uVar19 = (ulong)uVar14;
LAB_00154042:
          uVar9 = (*DAT_00196f88)(uVar20,uVar19);
        }
        uVar20 = uVar20 + uVar10 * 2;
        printf("    ");
        FUN_0013d4c0(local_70,uVar14);
        FUN_0013d4c0(uVar9,uVar14);
        putc(10,stdout);
        uVar19 = uVar18;
      } while ((lVar15 - uVar10) + uVar20 <= uVar1);
    }
  } while( true );
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RSI
LEA RSI,[RDI + 0x18]
SUB RSP,0x48
MOV R14,qword ptr [RDI + 0x20]
MOV R15,qword ptr [RDI + 0x30]
MOV qword ptr [RSP + 0x30],RDI
MOV RDI,qword ptr [RDI + 0x10]
MOV qword ptr [RSP + 0x10],R14
ADD R15,R14
CALL 0x0013ed70
MOV RDI,RBX
CALL 0x00150dc0
CMP R14,R15
JNC 0x00154063
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x10]
LEA RBX,[RAX + 0x4]
CMP RBX,R15
JC 0x00154088
MOV RSI,R15
SUB RSI,RAX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x0015408d
MOV dword ptr [RSP + 0x20],0x4
MOV R13D,0x4
MOV RDX,qword ptr [RSP + 0x30]
MOV RAX,RBX
XOR EBP,EBP
SUB RAX,qword ptr [RDX + 0x20]
MOV R12,RAX
MOV RDX,qword ptr [RSP + 0x30]
CMP qword ptr [RDX + 0x30],RAX
JC 0x001542aa
LEA R12,[RBX + 0x2]
CMP R12,R15
JC 0x001540f0
CMP R15,RBX
JBE 0x00153d9e
MOV RSI,R15
SUB RSI,RBX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x0015434a
MOV ECX,R13D
MOV EAX,0xfffffffe
XOR EBX,EBX
ADD RCX,R12
MOV word ptr [RSP + 0x8],AX
CMP R15,RCX
JA 0x00154130
XOR R14D,R14D
MOV EAX,dword ptr [0x00196f14]
LEA EDX,[RAX + -0x1]
CMP EDX,-0x3
JBE 0x0015415b
LEA RDX,[RCX + 0x1]
CMP RDX,R15
JC 0x001541d0
CMP R15,RCX
JBE 0x00153df2
MOV RSI,R15
SUB RSI,RCX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00154374
LEA R13,[RCX + 0x2]
CMP R15,R13
JBE 0x00154258
MOV byte ptr [RSP + 0x18],0x0
MOV ESI,0x1
MOV RDI,RDX
CALL qword ptr [0x00196f88]
MOV R12D,EAX
CMP word ptr [RSP + 0x8],0x1
JA 0x00154229
MOV EDX,0x5
LEA RSI,[0x1805a0]
XOR EDI,EDI
CALL 0x00107130
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
MOV EDX,0x5
LEA RSI,[0x1805c8]
XOR EDI,EDI
CALL 0x00107130
MOVZX ESI,BX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
MOV EDX,0x5
LEA RSI,[0x1805e8]
XOR EDI,EDI
CALL 0x00107130
MOV RSI,R14
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
MOV EDX,0x5
LEA RSI,[0x180610]
XOR EDI,EDI
CALL 0x00107130
MOVZX ESI,byte ptr [RSP + 0x18]
MOV RDI,RAX
XOR EAX,EAX
MOV EBX,ESI
CALL 0x00107190
MOV EDX,0x5
LEA RSI,[0x180630]
XOR EDI,EDI
CALL 0x00107130
MOVZX ESI,R12B
ADD R12D,EBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
LEA EAX,[R12 + -0x1]
CMP AL,0x7
JA 0x00154310
MOVZX EBX,R12B
MOV EDX,0x5
LEA EAX,[RBX + -0x1]
TEST EAX,EBX
JNZ 0x0015433e
LEA RSI,[0x1806b0]
CMP R12B,0x4
JA 0x00153efe
LEA RSI,[0x182343]
XOR EDI,EDI
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
LEA ESI,[RBX + RBX*0x1]
MOV RAX,R13
SUB RAX,qword ptr [RSP + 0x10]
MOVSXD RCX,ESI
CQO
IDIV RCX
MOV qword ptr [RSP + 0x18],RCX
TEST RDX,RDX
JZ 0x00153f34
SUB ESI,EDX
MOVSXD RSI,ESI
ADD R13,RSI
MOV EAX,dword ptr [RSP + 0x20]
ADD RBP,RAX
MOV RAX,qword ptr [RSP + 0x18]
ADD qword ptr [RSP + 0x10],RBP
MOV RCX,qword ptr [RSP + 0x10]
ADD RAX,R13
CMP RCX,RAX
JC 0x00154058
MOVZX EAX,R12B
MOV RDI,R13
MOV qword ptr [RSP + 0x20],RAX
LEA R12,[RAX + RAX*0x1]
LEA R14,[R13 + RAX*0x1]
NEG RAX
ADD RAX,RAX
MOV qword ptr [RSP + 0x28],RAX
JMP 0x00153fff
MOV RAX,qword ptr [RSP + 0x28]
ADD RAX,RBP
CMP R15,RAX
JBE 0x00153f9b
MOV RSI,R15
SUB RSI,RDI
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x0015400e
MOV qword ptr [RSP + 0x8],0x0
CMP RBP,R15
JC 0x00154040
XOR R13D,R13D
LEA RDI,[0x16a394]
XOR EAX,EAX
ADD R14,R12
CALL 0x00107190
MOV RDI,qword ptr [RSP + 0x8]
MOV ESI,EBX
CALL 0x0013d4c0
MOV ESI,EBX
MOV RDI,R13
CALL 0x0013d4c0
MOV RSI,qword ptr [0x001923a0]
MOV EDI,0xa
CALL 0x00107270
MOV RAX,qword ptr [RSP + 0x18]
SUB RAX,qword ptr [RSP + 0x20]
MOV RDI,RBP
ADD RAX,R14
CMP qword ptr [RSP + 0x10],RAX
JC 0x00154058
LEA RBP,[RDI + R12*0x1]
CMP R14,R15
JNC 0x00153f80
MOV ESI,EBX
CALL qword ptr [0x00196f88]
MOV qword ptr [RSP + 0x8],RAX
CMP RBP,R15
JC 0x00154040
CMP R14,R15
JNC 0x00153fad
MOV RSI,R15
SUB RSI,R14
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JA 0x00153fad
JMP 0x00154042
MOV ESI,EBX
MOV RDI,R14
CALL qword ptr [0x00196f88]
MOV R13,RAX
JMP 0x00153fb0
CMP R15,qword ptr [RSP + 0x10]
JA 0x00153d28
MOV EDI,0xa
CALL 0x00107040
ADD RSP,0x48
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ESI,0x4
MOV R14,qword ptr [RSP + 0x10]
MOV RDI,R14
CALL qword ptr [0x00196f88]
MOV RBP,RAX
MOV EAX,0xffffffff
CMP RBP,RAX
JNZ 0x00154300
LEA R12,[R14 + 0xc]
CMP R12,R15
JC 0x00154270
CMP RBX,R15
JNC 0x001540d0
MOV RSI,R15
SUB RSI,RBX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00154275
MOV RBX,R12
MOV dword ptr [RSP + 0x20],0xc
MOV R13D,0x8
JMP 0x00153d5a
MOV RDI,RBX
MOV ESI,0x2
CALL qword ptr [0x00196f88]
MOV ECX,R13D
ADD RCX,R12
MOV EBX,EAX
CMP R15,RCX
JA 0x00154260
SUB EAX,0x2
MOV word ptr [RSP + 0x8],AX
MOV RAX,R15
SUB RAX,R12
MOV R13D,EAX
SUB EAX,0x1
CMP EAX,0x7
JA 0x00153db9
NOP dword ptr [RAX]
MOV qword ptr [RSP + 0x18],RCX
MOV ESI,R13D
MOV RDI,R12
CALL qword ptr [0x00196f88]
MOV RCX,qword ptr [RSP + 0x18]
MOV R14,RAX
MOV EAX,dword ptr [0x00196f14]
LEA EDX,[RAX + -0x1]
CMP EDX,-0x3
JA 0x00153dce
MOV RSI,qword ptr [0x00196f08]
LEA RDI,[RDX + RDX*0x2]
LEA RDX,[RDX + RDI*0x4]
LEA RAX,[RSI + 0x10]
LEA RDX,[RSI + RDX*0x8 + 0x78]
NOP dword ptr [RAX + RAX*0x1]
CMP R14,qword ptr [RAX]
JZ 0x00153dce
ADD RAX,0x68
CMP RAX,RDX
JNZ 0x00154178
MOV RAX,qword ptr [RSP + 0x30]
MOV EDX,0x5
LEA RSI,[0x180518]
XOR EDI,EDI
MOV qword ptr [RSP + 0x18],RCX
MOV R12,qword ptr [RAX + 0x10]
CALL 0x00107130
MOV RSI,R14
MOV RDX,R12
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001550d0
MOV RCX,qword ptr [RSP + 0x18]
LEA RDX,[RCX + 0x1]
CMP RDX,R15
JNC 0x00153ddb
NOP dword ptr [RAX]
MOV qword ptr [RSP + 0x38],RDX
MOV ESI,0x1
MOV RDI,RCX
MOV qword ptr [RSP + 0x28],RCX
CALL qword ptr [0x00196f88]
MOV RCX,qword ptr [RSP + 0x28]
MOV ESI,0x1
MOV RDX,qword ptr [RSP + 0x38]
MOV byte ptr [RSP + 0x18],AL
LEA R13,[RCX + 0x2]
CMP R13,R15
JC 0x00153e09
MOV RSI,R15
SUB RSI,RDX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00153e09
XOR R12D,R12D
CMP word ptr [RSP + 0x8],0x1
JBE 0x00153e21
MOV EDX,0x5
LEA RSI,[0x180568]
TEST BX,BX
JZ 0x00154063
XOR EDI,EDI
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001550d0
JMP 0x00154063
MOV byte ptr [RSP + 0x18],0x0
JMP 0x0015421a
LEA EAX,[RBX + -0x2]
MOV word ptr [RSP + 0x8],AX
JMP 0x00154130
MOV ESI,0x8
MOV RDI,RBX
MOV R13D,0x8
MOV RBX,R12
CALL qword ptr [0x00196f88]
MOV dword ptr [RSP + 0x20],0xc
MOV RBP,RAX
MOV RAX,qword ptr [RSP + 0x30]
MOV R12,RBX
SUB R12,qword ptr [RAX + 0x20]
MOV RAX,RBP
ADD RAX,R12
JNC 0x00153d6b
XOR EDX,EDX
MOV RSI,RBP
LEA RDI,[0x16a7d1]
CALL 0x0013d1e0
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x17e080]
MOV RBP,RAX
MOV RAX,qword ptr [RSP + 0x30]
MOV RBX,qword ptr [RAX + 0x10]
CALL 0x00107130
MOV R14D,dword ptr [RSP + 0x20]
MOV RDX,R12
MOV RCX,RBP
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
SUB RDX,R14
CALL 0x001550d0
JMP 0x00154063
MOV dword ptr [RSP + 0x20],0x4
MOV R13D,0x4
JMP 0x00154292
MOV RAX,qword ptr [RSP + 0x30]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x180650]
MOV RBX,qword ptr [RAX + 0x10]
CALL 0x00107130
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x00154b80
JMP 0x00154063
LEA RSI,[0x180678]
JMP 0x0015423e
MOV RDI,RBX
CALL qword ptr [0x00196f88]
MOV ECX,R13D
ADD RCX,R12
MOV EBX,EAX
CMP R15,RCX
JA 0x00154260
SUB EAX,0x2
XOR R14D,R14D
MOV word ptr [RSP + 0x8],AX
JMP 0x00153dbc
MOV RDI,RCX
MOV qword ptr [RSP + 0x28],RCX
XOR R12D,R12D
MOV qword ptr [RSP + 0x38],RDX
CALL qword ptr [0x00196f88]
MOV RCX,qword ptr [RSP + 0x28]
MOV byte ptr [RSP + 0x18],AL
LEA R13,[RCX + 0x2]
CMP R13,R15
JNC 0x00153e15
MOV ESI,0x1
MOV RDX,qword ptr [RSP + 0x38]
JMP 0x00153e09
(translation_unit "undefined8 FUN_00153ce0(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_00153ce0(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00153ce0(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  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(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 "uVar21 = *(long *)(param_1 + 0x30) + uVar1;" (assignment_expression "uVar21 = *(long *)(param_1 + 0x30) + uVar1" identifier = (binary_expression "*(long *)(param_1 + 0x30) + uVar1" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + identifier)) ;) (expression_statement "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" ( (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) )))) , (binary_expression "param_1 + 0x18" identifier + number_literal) ))) ;) (expression_statement "FUN_00150dc0(param_2);" (call_expression "FUN_00150dc0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (do_statement "do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );" do (compound_statement "{\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  }" { (if_statement "if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(uVar21 <= uVar1)" ( (binary_expression "uVar21 <= uVar1" identifier <= identifier) )) (compound_statement "{\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00154063:\n      putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar20 = uVar1 + 4;" (assignment_expression "uVar20 = uVar1 + 4" identifier = (binary_expression "uVar1 + 4" identifier + number_literal)) ;) (if_statement "if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" { (expression_statement "lVar15 = 4;" (assignment_expression "lVar15 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);" statement_identifier : (expression_statement "uVar10 = (*DAT_00196f88)(uVar1,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar1,lVar15)" identifier = (call_expression "(*DAT_00196f88)(uVar1,lVar15)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar1,lVar15)" ( identifier , identifier )))) ;)) (if_statement "if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }" { (expression_statement "uVar18 = uVar1 + 0xc;" (assignment_expression "uVar18 = uVar1 + 0xc" identifier = (binary_expression "uVar1 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (compound_statement "{\n          lVar15 = 8;\n        }" { (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" else (if_statement "if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U))" ( (binary_expression "(uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" (parenthesized_expression "(uVar21 <= uVar20)" ( (binary_expression "uVar21 <= uVar20" identifier <= identifier) )) || (parenthesized_expression "(lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" ( (comma_expression "lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U" (assignment_expression "lVar15 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "7 < (int)lVar15 - 1U" number_literal < (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (compound_statement "{\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" { (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_00153d5a;" goto statement_identifier ;) })))) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (expression_statement "uVar10 = (*DAT_00196f88)(uVar20,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar20,lVar15)" identifier = (call_expression "(*DAT_00196f88)(uVar20,lVar15)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,lVar15)" ( identifier , identifier )))) ;) (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" else (compound_statement "{\n        local_58 = 4;\n        uVar19 = 4;\n      }" { (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar18 = uVar20 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = uVar20 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "uVar20 - *(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) )))))) ;) (expression_statement "uVar7 = uVar10 + uVar18;" (assignment_expression "uVar7 = uVar10 + uVar18" identifier = (binary_expression "uVar10 + uVar18" identifier + identifier)) ;) (if_statement "if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;" if (parenthesized_expression "(!CARRY8(uVar10,uVar18))" ( (unary_expression "!CARRY8(uVar10,uVar18)" ! (call_expression "CARRY8(uVar10,uVar18)" identifier (argument_list "(uVar10,uVar18)" ( identifier , identifier )))) )) (goto_statement "goto LAB_00153d6b;" goto statement_identifier ;)) (labeled_statement "LAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);" statement_identifier : (expression_statement "uVar13 = FUN_0013d1e0("x",uVar10,0);" (assignment_expression "uVar13 = FUN_0013d1e0("x",uVar10,0)" identifier = (call_expression "FUN_0013d1e0("x",uVar10,0)" identifier (argument_list "("x",uVar10,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier = (call_expression "dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier (argument_list "(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( number_literal , (string_literal ""Debug info is corrupted, %s header at %#lx has length %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar9,uVar18 - local_58,uVar13);" (call_expression "warn(uVar12,uVar9,uVar18 - local_58,uVar13)" identifier (argument_list "(uVar12,uVar9,uVar18 - local_58,uVar13)" ( identifier , identifier , (binary_expression "uVar18 - local_58" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "lVar15 = uVar21 - uVar1;" (assignment_expression "lVar15 = uVar21 - uVar1" identifier = (binary_expression "uVar21 - uVar1" identifier - identifier)) ;) (if_statement "if ((int)lVar15 - 1U < 8) goto LAB_0015408d;" if (parenthesized_expression "((int)lVar15 - 1U < 8)" ( (binary_expression "(int)lVar15 - 1U < 8" (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_0015408d;" goto statement_identifier ;)) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) (expression_statement "uVar18 = uVar20;" (assignment_expression "uVar18 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_00153d5a:\n    uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = uVar18 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = uVar18 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "uVar18 - *(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) )))))) ;) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" statement_identifier : (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" if (parenthesized_expression "(*(ulong *)(param_1 + 0x30) < uVar7)" ( (binary_expression "*(ulong *)(param_1 + 0x30) < uVar7" (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) )))) < identifier) )) (goto_statement "goto LAB_001542aa;" goto statement_identifier ;))) (expression_statement "uVar18 = uVar20 + 2;" (assignment_expression "uVar18 = uVar20 + 2" identifier = (binary_expression "uVar20 + 2" identifier + number_literal)) ;) (expression_statement "iVar2 = (int)uVar21;" (assignment_expression "iVar2 = (int)uVar21" identifier = (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" identifier = identifier) ;) (if_statement "if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,2);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,2)" identifier = (call_expression "(*DAT_00196f88)(uVar20,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,2)" ( identifier , number_literal )))) ;) (if_statement "if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" if (parenthesized_expression "(uVar21 <= uVar19 + uVar18)" ( (binary_expression "uVar21 <= uVar19 + uVar18" identifier <= (binary_expression "uVar19 + uVar18" identifier + identifier)) )) (compound_statement "{\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" { (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;) (expression_statement "uVar14 = iVar2 - (int)uVar18;" (assignment_expression "uVar14 = iVar2 - (int)uVar18" identifier = (binary_expression "iVar2 - (int)uVar18" identifier - (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar14 - 1 < 8) goto LAB_00154130;" if (parenthesized_expression "(uVar14 - 1 < 8)" ( (binary_expression "uVar14 - 1 < 8" (binary_expression "uVar14 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) (goto_statement "goto LAB_00153dbc;" goto statement_identifier ;) })) (labeled_statement "LAB_00154260:\n      local_70._0_2_ = uVar6 - 2;" statement_identifier : (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;)) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (labeled_statement "LAB_00154130:\n      uVar6 = uVar3;" statement_identifier : (expression_statement "uVar6 = uVar3;" (assignment_expression "uVar6 = uVar3" identifier = identifier) ;)) (expression_statement "lVar15 = (*DAT_00196f88)(uVar18,uVar7);" (assignment_expression "lVar15 = (*DAT_00196f88)(uVar18,uVar7)" identifier = (call_expression "(*DAT_00196f88)(uVar18,uVar7)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar18,uVar7)" ( identifier , identifier )))) ;) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (if_statement "if (uVar14 < 0xfffffffe) goto LAB_0015415b;" if (parenthesized_expression "(uVar14 < 0xfffffffe)" ( (binary_expression "uVar14 < 0xfffffffe" identifier < number_literal) )) (goto_statement "goto LAB_0015415b;" goto statement_identifier ;)) (labeled_statement "LAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;" statement_identifier : (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" identifier = (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;)) (if_statement "if (uVar21 <= uVar20) goto LAB_00153ddb;" if (parenthesized_expression "(uVar21 <= uVar20)" ( (binary_expression "uVar21 <= uVar20" identifier <= identifier) )) (goto_statement "goto LAB_00153ddb;" goto statement_identifier ;)) (labeled_statement "LAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" statement_identifier : (expression_statement "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1)" identifier = (call_expression "(*DAT_00196f88)(uVar19 + uVar18,1)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19 + uVar18,1)" ( (binary_expression "uVar19 + uVar18" identifier + identifier) , number_literal )))) ;)) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = uVar19 + uVar18 + 2;" (assignment_expression "uVar19 = uVar19 + uVar18 + 2" identifier = (binary_expression "uVar19 + uVar18 + 2" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;) (if_statement "if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;" if (parenthesized_expression "((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U))" ( (binary_expression "(uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(uVar21 <= uVar19)" ( (binary_expression "uVar21 <= uVar19" identifier <= identifier) )) && (parenthesized_expression "(lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" ( (comma_expression "lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "7 < (int)lVar16 - 1U" number_literal < (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_0015421a;" goto statement_identifier ;)) (labeled_statement "LAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);" statement_identifier : (expression_statement "bVar4 = (*DAT_00196f88)(uVar20,lVar16);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar20,lVar16)" identifier = (call_expression "(*DAT_00196f88)(uVar20,lVar16)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,lVar16)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;" statement_identifier : (if_statement "if ((ushort)local_70 < 2) goto LAB_00153e21;" if (parenthesized_expression "((ushort)local_70 < 2)" ( (binary_expression "(ushort)local_70 < 2" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_00153e21;" goto statement_identifier ;))) (labeled_statement "LAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" statement_identifier : (expression_statement "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (assignment_expression "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n"" identifier = (string_literal ""Only DWARF 2 and 3 aranges are currently supported.\n"" " string_content escape_sequence ")) ;)) (if_statement "if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" { (labeled_statement "LAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar9);" (call_expression "warn(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (if_statement "if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" if (parenthesized_expression "((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8))" ( (binary_expression "(uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) && (parenthesized_expression "((iVar2 - (int)uVar20) - 1U < 8)" ( (binary_expression "(iVar2 - (int)uVar20) - 1U < 8" (binary_expression "(iVar2 - (int)uVar20) - 1U" (parenthesized_expression "(iVar2 - (int)uVar20)" ( (binary_expression "iVar2 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\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 )))) ;) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154260;" if (parenthesized_expression "(uVar19 + uVar18 < uVar21)" ( (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154260;" goto statement_identifier ;)) (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;) }) (else_clause "else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" else (compound_statement "{\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "local_70._0_2_ = 0xfffe;" (assignment_expression "local_70._0_2_ = 0xfffe" (field_expression "local_70._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154130;" if (parenthesized_expression "(uVar19 + uVar18 < uVar21)" ( (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00153dbc:\n    lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (if_statement "if (0xfffffffd < uVar14) goto LAB_00153dce;" if (parenthesized_expression "(0xfffffffd < uVar14)" ( (binary_expression "0xfffffffd < uVar14" number_literal < identifier) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (labeled_statement "LAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);" statement_identifier : (expression_statement "plVar11 = (long *)(DAT_00196f08 + 0x10);" (assignment_expression "plVar11 = (long *)(DAT_00196f08 + 0x10)" identifier = (cast_expression "(long *)(DAT_00196f08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x10)" ( (binary_expression "DAT_00196f08 + 0x10" identifier + number_literal) )))) ;)) (do_statement "do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));" do (compound_statement "{\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    }" { (if_statement "if (lVar15 == *plVar11) goto LAB_00153dce;" if (parenthesized_expression "(lVar15 == *plVar11)" ( (binary_expression "lVar15 == *plVar11" identifier == (pointer_expression "*plVar11" * identifier)) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (expression_statement "plVar11 = plVar11 + 0xd;" (assignment_expression "plVar11 = plVar11 + 0xd" identifier = (binary_expression "plVar11 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68))" ( (binary_expression "plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" identifier != (cast_expression "(long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" ( (binary_expression "DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68" (binary_expression "DAT_00196f08 + 0x78" identifier + number_literal) + (binary_expression "(ulong)uVar14 * 0x68" (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) )) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);" (assignment_expression "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" identifier = (call_expression "dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" identifier (argument_list "(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" ( number_literal , (string_literal "".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar13,lVar15,uVar9);" (call_expression "warn(uVar13,lVar15,uVar9)" identifier (argument_list "(uVar13,lVar15,uVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" identifier = (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar20 < uVar21) goto LAB_001541d0;" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (goto_statement "goto LAB_001541d0;" goto statement_identifier ;)) (labeled_statement "LAB_00153ddb:\n    uVar19 = uVar19 + uVar18;" statement_identifier : (expression_statement "uVar19 = uVar19 + uVar18;" (assignment_expression "uVar19 = uVar19 + uVar18" identifier = (binary_expression "uVar19 + uVar18" identifier + identifier)) ;)) (if_statement "if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" if (parenthesized_expression "((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8))" ( (binary_expression "(uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)" (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) && (parenthesized_expression "((iVar2 - (int)uVar19) - 1U < 8)" ( (binary_expression "(iVar2 - (int)uVar19) - 1U < 8" (binary_expression "(iVar2 - (int)uVar19) - 1U" (parenthesized_expression "(iVar2 - (int)uVar19)" ( (binary_expression "iVar2 - (int)uVar19" identifier - (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (expression_statement "cVar5 = (*DAT_00196f88)(uVar19);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19)" identifier = (call_expression "(*DAT_00196f88)(uVar19)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (if_statement "if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" if (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) (compound_statement "{\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" { (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (goto_statement "goto LAB_00153e15;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (if_statement "if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" if (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) (compound_statement "{\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" { (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0015421a:\n    bVar4 = 0;" statement_identifier : (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;)) (if_statement "if (1 < (ushort)local_70) goto LAB_00154229;" if (parenthesized_expression "(1 < (ushort)local_70)" ( (binary_expression "1 < (ushort)local_70" number_literal < (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00154229;" goto statement_identifier ;)) (labeled_statement "LAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Length:                   %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Length:                   %ld\n",5)" identifier (argument_list "(0,"  Length:                   %ld\n",5)" ( number_literal , (string_literal ""  Length:                   %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "printf(pcVar8,uVar10);" (call_expression "printf(pcVar8,uVar10)" identifier (argument_list "(pcVar8,uVar10)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Version:                  %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Version:                  %d\n",5)" identifier (argument_list "(0,"  Version:                  %d\n",5)" ( number_literal , (string_literal ""  Version:                  %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,(ulong)uVar6);" (call_expression "printf(pcVar8,(ulong)uVar6)" identifier (argument_list "(pcVar8,(ulong)uVar6)" ( identifier , (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info:  0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info:  0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,lVar15);" (call_expression "printf(pcVar8,lVar15)" identifier (argument_list "(pcVar8,lVar15)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Pointer Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Pointer Size:             %d\n",5)" identifier (argument_list "(0,"  Pointer Size:             %d\n",5)" ( number_literal , (string_literal ""  Pointer Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Segment Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Segment Size:             %d\n",5)" identifier (argument_list "(0,"  Segment Size:             %d\n",5)" ( number_literal , (string_literal ""  Segment Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "bVar17 = bVar4 + cVar5;" (assignment_expression "bVar17 = bVar4 + cVar5" identifier = (binary_expression "bVar4 + cVar5" identifier + identifier)) ;) (expression_statement "printf(pcVar8,(ulong)bVar4);" (call_expression "printf(pcVar8,(ulong)bVar4)" identifier (argument_list "(pcVar8,(ulong)bVar4)" ( identifier , (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(7 < (byte)(bVar17 - 1))" ( (binary_expression "7 < (byte)(bVar17 - 1)" number_literal < (call_expression "(byte)(bVar17 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar17 - 1)" ( (binary_expression "bVar17 - 1" identifier - number_literal) )))) )) (compound_statement "{\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" { (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5)" identifier = (call_expression "dcgettext(0,"Invalid address size in %s section!\n",5)" identifier (argument_list "(0,"Invalid address size in %s section!\n",5)" ( number_literal , (string_literal ""Invalid address size in %s section!\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar13,uVar9);" (call_expression "error(uVar13,uVar9)" identifier (argument_list "(uVar13,uVar9)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" if (parenthesized_expression "((uVar14 - 1 & uVar14) != 0)" ( (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" ( (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" identifier - number_literal) & identifier) )) != number_literal) )) (compound_statement "{\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" { (expression_statement "pcVar8 = "Pointer size + Segment size is not a power of two.\n";" (assignment_expression "pcVar8 = "Pointer size + Segment size is not a power of two.\n"" identifier = (string_literal ""Pointer size + Segment size is not a power of two.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0015423e;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "\n    Address            Length\n";" (assignment_expression "pcVar8 = "\n    Address            Length\n"" identifier = (string_literal ""\n    Address            Length\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }" if (parenthesized_expression "(bVar17 < 5)" ( (binary_expression "bVar17 < 5" identifier < number_literal) )) (compound_statement "{\n      pcVar8 = "\n    Address    Length\n";\n    }" { (expression_statement "pcVar8 = "\n    Address    Length\n";" (assignment_expression "pcVar8 = "\n    Address    Length\n"" identifier = (string_literal ""\n    Address    Length\n"" " escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "lVar15 = (long)(int)(uVar14 * 2);" (assignment_expression "lVar15 = (long)(int)(uVar14 * 2)" identifier = (cast_expression "(long)(int)(uVar14 * 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2)" ( (binary_expression "uVar14 * 2" identifier * number_literal) ))))) ;) (expression_statement "lVar16 = (long)(uVar19 - uVar1) % lVar15;" (assignment_expression "lVar16 = (long)(uVar19 - uVar1) % lVar15" identifier = (binary_expression "(long)(uVar19 - uVar1) % lVar15" (cast_expression "(long)(uVar19 - uVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar19 - uVar1)" ( (binary_expression "uVar19 - uVar1" identifier - identifier) ))) % identifier)) ;) (if_statement "if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" { (expression_statement "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);" (assignment_expression "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" identifier = (binary_expression "uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" identifier + (cast_expression "(long)(int)(uVar14 * 2 - (int)lVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar14 * 2 - (int)lVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2 - (int)lVar16)" ( (binary_expression "uVar14 * 2 - (int)lVar16" (binary_expression "uVar14 * 2" identifier * number_literal) - (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) })) (expression_statement "uVar1 = uVar1 + uVar10 + local_58;" (assignment_expression "uVar1 = uVar1 + uVar10 + local_58" identifier = (binary_expression "uVar1 + uVar10 + local_58" (binary_expression "uVar1 + uVar10" identifier + identifier) + identifier)) ;) (if_statement "if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" if (parenthesized_expression "(lVar15 + uVar19 <= uVar1)" ( (binary_expression "lVar15 + uVar19 <= uVar1" (binary_expression "lVar15 + uVar19" identifier + identifier) <= identifier) )) (compound_statement "{\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" { (expression_statement "uVar10 = (ulong)bVar17;" (assignment_expression "uVar10 = (ulong)bVar17" identifier = (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar20 = uVar19 + uVar10;" (assignment_expression "uVar20 = uVar19 + uVar10" identifier = (binary_expression "uVar19 + uVar10" identifier + identifier)) ;) (do_statement "do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);" do (compound_statement "{\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      }" { (expression_statement "uVar18 = uVar19 + uVar10 * 2;" (assignment_expression "uVar18 = uVar19 + uVar10 * 2" identifier = (binary_expression "uVar19 + uVar10 * 2" identifier + (binary_expression "uVar10 * 2" identifier * number_literal))) ;) (if_statement "if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }" { (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);" statement_identifier : (expression_statement "local_70 = (*DAT_00196f88)(uVar19,uVar7);" (assignment_expression "local_70 = (*DAT_00196f88)(uVar19,uVar7)" identifier = (call_expression "(*DAT_00196f88)(uVar19,uVar7)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19,uVar7)" ( identifier , identifier )))) ;)) (if_statement "if (uVar18 < uVar21) goto LAB_00154040;" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (goto_statement "goto LAB_00154040;" goto statement_identifier ;)) (if_statement "if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;" if (parenthesized_expression "((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))" ( (binary_expression "(uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) && (parenthesized_expression "(uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" ( (comma_expression "uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8" (assignment_expression "uVar19 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "(int)uVar19 - 1U < 8" (binary_expression "(int)uVar19 - 1U" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00154042;" goto statement_identifier ;)) (labeled_statement "LAB_00153fad:\n          uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" else (compound_statement "{\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" { (if_statement "if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;" if (parenthesized_expression "((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))" ( (binary_expression "(uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" (parenthesized_expression "(uVar10 * -2 + uVar18 < uVar21)" ( (binary_expression "uVar10 * -2 + uVar18 < uVar21" (binary_expression "uVar10 * -2 + uVar18" (binary_expression "uVar10 * -2" identifier * number_literal) + identifier) < identifier) )) && (parenthesized_expression "(uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" ( (comma_expression "uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8" (assignment_expression "uVar7 = uVar21 - uVar19" identifier = (binary_expression "uVar21 - uVar19" identifier - identifier)) , (binary_expression "(int)uVar7 - 1U < 8" (binary_expression "(int)uVar7 - 1U" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_0015400e;" goto statement_identifier ;)) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 <= uVar18) goto LAB_00153fad;" if (parenthesized_expression "(uVar21 <= uVar18)" ( (binary_expression "uVar21 <= uVar18" identifier <= identifier) )) (goto_statement "goto LAB_00153fad;" goto statement_identifier ;)) (labeled_statement "LAB_00154040:\n          uVar19 = (ulong)uVar14;" statement_identifier : (expression_statement "uVar19 = (ulong)uVar14;" (assignment_expression "uVar19 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (labeled_statement "LAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);" statement_identifier : (expression_statement "uVar9 = (*DAT_00196f88)(uVar20,uVar19);" (assignment_expression "uVar9 = (*DAT_00196f88)(uVar20,uVar19)" identifier = (call_expression "(*DAT_00196f88)(uVar20,uVar19)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,uVar19)" ( identifier , identifier )))) ;)) }))) (expression_statement "uVar20 = uVar20 + uVar10 * 2;" (assignment_expression "uVar20 = uVar20 + uVar10 * 2" identifier = (binary_expression "uVar20 + uVar10 * 2" identifier + (binary_expression "uVar10 * 2" identifier * number_literal))) ;) (expression_statement "printf("    ");" (call_expression "printf("    ")" identifier (argument_list "("    ")" ( (string_literal ""    "" " string_content ") ))) ;) (expression_statement "FUN_0013d4c0(local_70,uVar14);" (call_expression "FUN_0013d4c0(local_70,uVar14)" identifier (argument_list "(local_70,uVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar9,uVar14);" (call_expression "FUN_0013d4c0(uVar9,uVar14)" identifier (argument_list "(uVar9,uVar14)" ( identifier , identifier ))) ;) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "((lVar15 - uVar10) + uVar20 <= uVar1)" ( (binary_expression "(lVar15 - uVar10) + uVar20 <= uVar1" (binary_expression "(lVar15 - uVar10) + uVar20" (parenthesized_expression "(lVar15 - uVar10)" ( (binary_expression "lVar15 - uVar10" identifier - identifier) )) + identifier) <= identifier) )) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int display_debug_aranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  uchar *puVar2;\n  int iVar3;\n  int iVar4;\n  ushort uVar5;\n  ulong uVar6;\n  elf_vma eVar7;\n  char *pcVar8;\n  elf_vma eVar9;\n  elf_vma eVar10;\n  dwarf_vma *pdVar11;\n  char *message;\n  char *pcVar12;\n  dwarf_section *in_RDX;\n  long lVar13;\n  ushort uVar14;\n  uint num_bytes;\n  uint uVar15;\n  int iVar16;\n  uint uVar17;\n  ulong uVar18;\n  long lVar19;\n  uchar *puVar20;\n  uchar *puVar21;\n  uchar *puVar22;\n  elf_vma local_70;\n  byte local_60;\n  long local_58;\n  \n  puVar2 = section->start;\n  puVar22 = puVar2 + section->size;\n  introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX);\n  load_debug_info(file);\n  do {\n    if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    puVar21 = puVar2 + 4;\n    iVar4 = (int)puVar22;\n    if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }\n    iVar16 = iVar4 - (int)puVar2;\n    if (iVar16 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    lVar19 = 4;\n    puVar20 = puVar21;\nLAB_00153d5a:\n    eVar9 = 0;\n    uVar6 = (long)puVar20 - (long)section->start;\n    puVar21 = puVar20;\n    uVar18 = uVar6;\nLAB_00153d6b:\n    iVar16 = (int)lVar19;\n    if (section->size < uVar6) goto LAB_001542aa;\n    puVar20 = puVar21 + 2;\n    if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }\n    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    eVar10 = 0;\n    uVar17 = num_debug_info_entries - 1;\n    if (0xfffffffd < uVar17) goto LAB_00153dce;\nLAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;\n    do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);\n    pcVar8 = section->name;\n    pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar12,eVar10,pcVar8);\n    puVar21 = puVar20 + lVar19 + 1;\n    if (puVar21 < puVar22) goto LAB_001541d0;\nLAB_00153ddb:\n    puVar20 = puVar20 + lVar19;\n    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    puVar20 = puVar20 + 2;\n    if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }\n    local_60 = 0;\nLAB_0015421a:\n    uVar18 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,eVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar14);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,eVar10);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    uVar17 = (int)uVar18 + (uint)local_60;\n    printf(pcVar8,uVar18 & 0xff);\n    if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }\n    num_bytes = uVar17 & 0xff;\n    if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar19 = (long)(int)(num_bytes * 2);\n    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;\n    if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }\n    puVar2 = puVar2 + eVar9 + local_58;\n    if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }\n  } while( true );\n}\n\n" (function_definition "int display_debug_aranges(dwarf_section *section,void *file)\n\n{\n  uchar *puVar1;\n  uchar *puVar2;\n  int iVar3;\n  int iVar4;\n  ushort uVar5;\n  ulong uVar6;\n  elf_vma eVar7;\n  char *pcVar8;\n  elf_vma eVar9;\n  elf_vma eVar10;\n  dwarf_vma *pdVar11;\n  char *message;\n  char *pcVar12;\n  dwarf_section *in_RDX;\n  long lVar13;\n  ushort uVar14;\n  uint num_bytes;\n  uint uVar15;\n  int iVar16;\n  uint uVar17;\n  ulong uVar18;\n  long lVar19;\n  uchar *puVar20;\n  uchar *puVar21;\n  uchar *puVar22;\n  elf_vma local_70;\n  byte local_60;\n  long local_58;\n  \n  puVar2 = section->start;\n  puVar22 = puVar2 + section->size;\n  introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX);\n  load_debug_info(file);\n  do {\n    if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    puVar21 = puVar2 + 4;\n    iVar4 = (int)puVar22;\n    if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }\n    iVar16 = iVar4 - (int)puVar2;\n    if (iVar16 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    lVar19 = 4;\n    puVar20 = puVar21;\nLAB_00153d5a:\n    eVar9 = 0;\n    uVar6 = (long)puVar20 - (long)section->start;\n    puVar21 = puVar20;\n    uVar18 = uVar6;\nLAB_00153d6b:\n    iVar16 = (int)lVar19;\n    if (section->size < uVar6) goto LAB_001542aa;\n    puVar20 = puVar21 + 2;\n    if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }\n    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    eVar10 = 0;\n    uVar17 = num_debug_info_entries - 1;\n    if (0xfffffffd < uVar17) goto LAB_00153dce;\nLAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;\n    do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);\n    pcVar8 = section->name;\n    pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar12,eVar10,pcVar8);\n    puVar21 = puVar20 + lVar19 + 1;\n    if (puVar21 < puVar22) goto LAB_001541d0;\nLAB_00153ddb:\n    puVar20 = puVar20 + lVar19;\n    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    puVar20 = puVar20 + 2;\n    if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }\n    local_60 = 0;\nLAB_0015421a:\n    uVar18 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,eVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar14);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,eVar10);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    uVar17 = (int)uVar18 + (uint)local_60;\n    printf(pcVar8,uVar18 & 0xff);\n    if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }\n    num_bytes = uVar17 & 0xff;\n    if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar19 = (long)(int)(num_bytes * 2);\n    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;\n    if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }\n    puVar2 = puVar2 + eVar9 + local_58;\n    if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }\n  } while( true );\n}" primitive_type (function_declarator "display_debug_aranges(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  uchar *puVar2;\n  int iVar3;\n  int iVar4;\n  ushort uVar5;\n  ulong uVar6;\n  elf_vma eVar7;\n  char *pcVar8;\n  elf_vma eVar9;\n  elf_vma eVar10;\n  dwarf_vma *pdVar11;\n  char *message;\n  char *pcVar12;\n  dwarf_section *in_RDX;\n  long lVar13;\n  ushort uVar14;\n  uint num_bytes;\n  uint uVar15;\n  int iVar16;\n  uint uVar17;\n  ulong uVar18;\n  long lVar19;\n  uchar *puVar20;\n  uchar *puVar21;\n  uchar *puVar22;\n  elf_vma local_70;\n  byte local_60;\n  long local_58;\n  \n  puVar2 = section->start;\n  puVar22 = puVar2 + section->size;\n  introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX);\n  load_debug_info(file);\n  do {\n    if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    puVar21 = puVar2 + 4;\n    iVar4 = (int)puVar22;\n    if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }\n    iVar16 = iVar4 - (int)puVar2;\n    if (iVar16 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    lVar19 = 4;\n    puVar20 = puVar21;\nLAB_00153d5a:\n    eVar9 = 0;\n    uVar6 = (long)puVar20 - (long)section->start;\n    puVar21 = puVar20;\n    uVar18 = uVar6;\nLAB_00153d6b:\n    iVar16 = (int)lVar19;\n    if (section->size < uVar6) goto LAB_001542aa;\n    puVar20 = puVar21 + 2;\n    if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }\n    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    eVar10 = 0;\n    uVar17 = num_debug_info_entries - 1;\n    if (0xfffffffd < uVar17) goto LAB_00153dce;\nLAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;\n    do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);\n    pcVar8 = section->name;\n    pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar12,eVar10,pcVar8);\n    puVar21 = puVar20 + lVar19 + 1;\n    if (puVar21 < puVar22) goto LAB_001541d0;\nLAB_00153ddb:\n    puVar20 = puVar20 + lVar19;\n    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    puVar20 = puVar20 + 2;\n    if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }\n    local_60 = 0;\nLAB_0015421a:\n    uVar18 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,eVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar14);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,eVar10);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    uVar17 = (int)uVar18 + (uint)local_60;\n    printf(pcVar8,uVar18 & 0xff);\n    if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }\n    num_bytes = uVar17 & 0xff;\n    if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar19 = (long)(int)(num_bytes * 2);\n    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;\n    if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }\n    puVar2 = puVar2 + eVar9 + local_58;\n    if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }\n  } while( true );\n}" { (declaration "uchar *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uchar *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "elf_vma eVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "elf_vma eVar9;" type_identifier identifier ;) (declaration "elf_vma eVar10;" type_identifier identifier ;) (declaration "dwarf_vma *pdVar11;" type_identifier (pointer_declarator "*pdVar11" * identifier) ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "dwarf_section *in_RDX;" type_identifier (pointer_declarator "*in_RDX" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "ushort uVar14;" type_identifier identifier ;) (declaration "uint num_bytes;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "long lVar19;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uchar *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uchar *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "elf_vma local_70;" type_identifier identifier ;) (declaration "byte local_60;" type_identifier identifier ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar2 = section->start;" (assignment_expression "puVar2 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "puVar22 = puVar2 + section->size;" (assignment_expression "puVar22 = puVar2 + section->size" identifier = (binary_expression "puVar2 + section->size" identifier + (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX);" (call_expression "introduce((dwarf_section *)section->name,(int)section + 0x18,in_RDX)" identifier (argument_list "((dwarf_section *)section->name,(int)section + 0x18,in_RDX)" ( (cast_expression "(dwarf_section *)section->name" ( (type_descriptor "dwarf_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->name" identifier -> field_identifier)) , (binary_expression "(int)section + 0x18" (cast_expression "(int)section" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) , identifier ))) ;) (expression_statement "load_debug_info(file);" (call_expression "load_debug_info(file)" identifier (argument_list "(file)" ( identifier ))) ;) (do_statement "do {\n    if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    puVar21 = puVar2 + 4;\n    iVar4 = (int)puVar22;\n    if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }\n    iVar16 = iVar4 - (int)puVar2;\n    if (iVar16 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    lVar19 = 4;\n    puVar20 = puVar21;\nLAB_00153d5a:\n    eVar9 = 0;\n    uVar6 = (long)puVar20 - (long)section->start;\n    puVar21 = puVar20;\n    uVar18 = uVar6;\nLAB_00153d6b:\n    iVar16 = (int)lVar19;\n    if (section->size < uVar6) goto LAB_001542aa;\n    puVar20 = puVar21 + 2;\n    if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }\n    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    eVar10 = 0;\n    uVar17 = num_debug_info_entries - 1;\n    if (0xfffffffd < uVar17) goto LAB_00153dce;\nLAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;\n    do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);\n    pcVar8 = section->name;\n    pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar12,eVar10,pcVar8);\n    puVar21 = puVar20 + lVar19 + 1;\n    if (puVar21 < puVar22) goto LAB_001541d0;\nLAB_00153ddb:\n    puVar20 = puVar20 + lVar19;\n    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    puVar20 = puVar20 + 2;\n    if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }\n    local_60 = 0;\nLAB_0015421a:\n    uVar18 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,eVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar14);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,eVar10);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    uVar17 = (int)uVar18 + (uint)local_60;\n    printf(pcVar8,uVar18 & 0xff);\n    if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }\n    num_bytes = uVar17 & 0xff;\n    if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar19 = (long)(int)(num_bytes * 2);\n    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;\n    if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }\n    puVar2 = puVar2 + eVar9 + local_58;\n    if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    puVar21 = puVar2 + 4;\n    iVar4 = (int)puVar22;\n    if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }\n    iVar16 = iVar4 - (int)puVar2;\n    if (iVar16 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    lVar19 = 4;\n    puVar20 = puVar21;\nLAB_00153d5a:\n    eVar9 = 0;\n    uVar6 = (long)puVar20 - (long)section->start;\n    puVar21 = puVar20;\n    uVar18 = uVar6;\nLAB_00153d6b:\n    iVar16 = (int)lVar19;\n    if (section->size < uVar6) goto LAB_001542aa;\n    puVar20 = puVar21 + 2;\n    if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }\n    if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    eVar10 = 0;\n    uVar17 = num_debug_info_entries - 1;\n    if (0xfffffffd < uVar17) goto LAB_00153dce;\nLAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;\n    do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);\n    pcVar8 = section->name;\n    pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);\n    warn(pcVar12,eVar10,pcVar8);\n    puVar21 = puVar20 + lVar19 + 1;\n    if (puVar21 < puVar22) goto LAB_001541d0;\nLAB_00153ddb:\n    puVar20 = puVar20 + lVar19;\n    if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    puVar20 = puVar20 + 2;\n    if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }\n    local_60 = 0;\nLAB_0015421a:\n    uVar18 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,eVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar14);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,eVar10);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    uVar17 = (int)uVar18 + (uint)local_60;\n    printf(pcVar8,uVar18 & 0xff);\n    if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }\n    num_bytes = uVar17 & 0xff;\n    if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar19 = (long)(int)(num_bytes * 2);\n    lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;\n    if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }\n    puVar2 = puVar2 + eVar9 + local_58;\n    if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }\n  }" { (if_statement "if (puVar22 <= puVar2) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(puVar22 <= puVar2)" ( (binary_expression "puVar22 <= puVar2" identifier <= identifier) )) (compound_statement "{\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00154063:\n      putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) (return_statement "return 1;" return number_literal ;) })) (expression_statement "puVar21 = puVar2 + 4;" (assignment_expression "puVar21 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) (expression_statement "iVar4 = (int)puVar22;" (assignment_expression "iVar4 = (int)puVar22" identifier = (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar21 < puVar22) {\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(puVar21 < puVar22)" ( (binary_expression "puVar21 < puVar22" identifier < identifier) )) (compound_statement "{\n      iVar16 = 4;\nLAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);\n      if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }\n      uVar18 = (long)puVar21 - (long)section->start;\n      uVar6 = eVar9 + uVar18;\n      if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);\n      pcVar8 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar8,uVar18 - local_58,pcVar12);\n      goto LAB_00154063;\n    }" { (expression_statement "iVar16 = 4;" (assignment_expression "iVar16 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0015408d:\n      eVar9 = (*byte_get)(puVar2,iVar16);" statement_identifier : (expression_statement "eVar9 = (*byte_get)(puVar2,iVar16);" (assignment_expression "eVar9 = (*byte_get)(puVar2,iVar16)" identifier = (call_expression "(*byte_get)(puVar2,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar2,iVar16)" ( identifier , identifier )))) ;)) (if_statement "if (eVar9 == 0xffffffff) {\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }\n      else {\n        local_58 = 4;\n        lVar19 = 4;\n      }" if (parenthesized_expression "(eVar9 == 0xffffffff)" ( (binary_expression "eVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar20 = puVar2 + 0xc;\n        if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        lVar19 = 8;\n        eVar9 = (*byte_get)(puVar21,iVar16);\n        local_58 = 0xc;\n        puVar21 = puVar20;\n      }" { (expression_statement "puVar20 = puVar2 + 0xc;" (assignment_expression "puVar20 = puVar2 + 0xc" identifier = (binary_expression "puVar2 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar20 < puVar22) {\n          iVar16 = 8;\n        }\n        else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "(puVar20 < puVar22)" ( (binary_expression "puVar20 < puVar22" identifier < identifier) )) (compound_statement "{\n          iVar16 = 8;\n        }" { (expression_statement "iVar16 = 8;" (assignment_expression "iVar16 = 8" identifier = number_literal) ;) }) (else_clause "else if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }" else (if_statement "if ((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)) {\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "((puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))" ( (binary_expression "(puVar22 <= puVar21) || (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)" (parenthesized_expression "(puVar22 <= puVar21)" ( (binary_expression "puVar22 <= puVar21" identifier <= identifier) )) || (parenthesized_expression "(iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)" ( (comma_expression "iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U" (assignment_expression "iVar16 = iVar4 - (int)puVar21" identifier = (binary_expression "iVar4 - (int)puVar21" identifier - (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar16 - 1U" number_literal < (binary_expression "iVar16 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n          local_58 = 0xc;\n          lVar19 = 8;\n          goto LAB_00153d5a;\n        }" { (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "lVar19 = 8;" (assignment_expression "lVar19 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_00153d5a;" goto statement_identifier ;) })))) (expression_statement "lVar19 = 8;" (assignment_expression "lVar19 = 8" identifier = number_literal) ;) (expression_statement "eVar9 = (*byte_get)(puVar21,iVar16);" (assignment_expression "eVar9 = (*byte_get)(puVar21,iVar16)" identifier = (call_expression "(*byte_get)(puVar21,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,iVar16)" ( identifier , identifier )))) ;) (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = 4;\n        lVar19 = 4;\n      }" else (compound_statement "{\n        local_58 = 4;\n        lVar19 = 4;\n      }" { (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "lVar19 = 4;" (assignment_expression "lVar19 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar18 = (long)puVar21 - (long)section->start;" (assignment_expression "uVar18 = (long)puVar21 - (long)section->start" identifier = (binary_expression "(long)puVar21 - (long)section->start" (cast_expression "(long)puVar21" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)section->start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "uVar6 = eVar9 + uVar18;" (assignment_expression "uVar6 = eVar9 + uVar18" identifier = (binary_expression "eVar9 + uVar18" identifier + identifier)) ;) (if_statement "if (!CARRY8(eVar9,uVar18)) goto LAB_00153d6b;" if (parenthesized_expression "(!CARRY8(eVar9,uVar18))" ( (unary_expression "!CARRY8(eVar9,uVar18)" ! (call_expression "CARRY8(eVar9,uVar18)" identifier (argument_list "(eVar9,uVar18)" ( identifier , identifier )))) )) (goto_statement "goto LAB_00153d6b;" goto statement_identifier ;)) (labeled_statement "LAB_001542aa:\n      pcVar12 = dwarf_vmatoa_1("x",eVar9,0);" statement_identifier : (expression_statement "pcVar12 = dwarf_vmatoa_1("x",eVar9,0);" (assignment_expression "pcVar12 = dwarf_vmatoa_1("x",eVar9,0)" identifier = (call_expression "dwarf_vmatoa_1("x",eVar9,0)" identifier (argument_list "("x",eVar9,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "pcVar8 = section->name;" (assignment_expression "pcVar8 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier (argument_list "(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( number_literal , (string_literal ""Debug info is corrupted, %s header at %#lx has length %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(message,pcVar8,uVar18 - local_58,pcVar12);" (call_expression "warn(message,pcVar8,uVar18 - local_58,pcVar12)" identifier (argument_list "(message,pcVar8,uVar18 - local_58,pcVar12)" ( identifier , identifier , (binary_expression "uVar18 - local_58" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "iVar16 = iVar4 - (int)puVar2;" (assignment_expression "iVar16 = iVar4 - (int)puVar2" identifier = (binary_expression "iVar4 - (int)puVar2" identifier - (cast_expression "(int)puVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar16 - 1U < 8) goto LAB_0015408d;" if (parenthesized_expression "(iVar16 - 1U < 8)" ( (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0015408d;" goto statement_identifier ;)) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "lVar19 = 4;" (assignment_expression "lVar19 = 4" identifier = number_literal) ;) (expression_statement "puVar20 = puVar21;" (assignment_expression "puVar20 = puVar21" identifier = identifier) ;) (labeled_statement "LAB_00153d5a:\n    eVar9 = 0;" statement_identifier : (expression_statement "eVar9 = 0;" (assignment_expression "eVar9 = 0" identifier = number_literal) ;)) (expression_statement "uVar6 = (long)puVar20 - (long)section->start;" (assignment_expression "uVar6 = (long)puVar20 - (long)section->start" identifier = (binary_expression "(long)puVar20 - (long)section->start" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)section->start" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "puVar21 = puVar20;" (assignment_expression "puVar21 = puVar20" identifier = identifier) ;) (expression_statement "uVar18 = uVar6;" (assignment_expression "uVar18 = uVar6" identifier = identifier) ;) (labeled_statement "LAB_00153d6b:\n    iVar16 = (int)lVar19;" statement_identifier : (expression_statement "iVar16 = (int)lVar19;" (assignment_expression "iVar16 = (int)lVar19" identifier = (cast_expression "(int)lVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (if_statement "if (section->size < uVar6) goto LAB_001542aa;" if (parenthesized_expression "(section->size < uVar6)" ( (binary_expression "section->size < uVar6" (field_expression "section->size" identifier -> field_identifier) < identifier) )) (goto_statement "goto LAB_001542aa;" goto statement_identifier ;)) (expression_statement "puVar20 = puVar21 + 2;" (assignment_expression "puVar20 = puVar21 + 2" identifier = (binary_expression "puVar21 + 2" identifier + number_literal)) ;) (if_statement "if (puVar20 < puVar22) {\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(puVar20 < puVar22)" ( (binary_expression "puVar20 < puVar22" identifier < identifier) )) (compound_statement "{\n      eVar10 = (*byte_get)(puVar21,2);\n      uVar14 = (ushort)eVar10;\n      if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar14 - 2;\n      uVar5 = uVar14;\nLAB_00154130:\n      uVar14 = uVar5;\n      eVar10 = (*byte_get)(puVar20,iVar16);\n      uVar17 = num_debug_info_entries - 1;\n      if (uVar17 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;\n      if (puVar22 <= puVar21) goto LAB_00153ddb;\nLAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);\n      iVar16 = 1;\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + lVar19 + 2;\n      if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;\nLAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);\n      uVar18 = eVar7 & 0xffffffff;\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }\n      goto LAB_00154063;\n    }" { (expression_statement "eVar10 = (*byte_get)(puVar21,2);" (assignment_expression "eVar10 = (*byte_get)(puVar21,2)" identifier = (call_expression "(*byte_get)(puVar21,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,2)" ( identifier , number_literal )))) ;) (expression_statement "uVar14 = (ushort)eVar10;" (assignment_expression "uVar14 = (ushort)eVar10" identifier = (cast_expression "(ushort)eVar10" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (if_statement "if (puVar22 <= puVar20 + lVar19) {\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" if (parenthesized_expression "(puVar22 <= puVar20 + lVar19)" ( (binary_expression "puVar22 <= puVar20 + lVar19" identifier <= (binary_expression "puVar20 + lVar19" identifier + identifier)) )) (compound_statement "{\n        local_70._0_2_ = uVar14 - 2;\n        iVar16 = iVar4 - (int)puVar20;\n        uVar5 = uVar14;\n        if (iVar16 - 1U < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" { (expression_statement "local_70._0_2_ = uVar14 - 2;" (assignment_expression "local_70._0_2_ = uVar14 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar14 - 2" identifier - number_literal)) ;) (expression_statement "iVar16 = iVar4 - (int)puVar20;" (assignment_expression "iVar16 = iVar4 - (int)puVar20" identifier = (binary_expression "iVar4 - (int)puVar20" identifier - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (if_statement "if (iVar16 - 1U < 8) goto LAB_00154130;" if (parenthesized_expression "(iVar16 - 1U < 8)" ( (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) (goto_statement "goto LAB_00153dbc;" goto statement_identifier ;) })) (labeled_statement "LAB_00154260:\n      local_70._0_2_ = uVar14 - 2;" statement_identifier : (expression_statement "local_70._0_2_ = uVar14 - 2;" (assignment_expression "local_70._0_2_ = uVar14 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar14 - 2" identifier - number_literal)) ;)) (expression_statement "uVar5 = uVar14;" (assignment_expression "uVar5 = uVar14" identifier = identifier) ;) (labeled_statement "LAB_00154130:\n      uVar14 = uVar5;" statement_identifier : (expression_statement "uVar14 = uVar5;" (assignment_expression "uVar14 = uVar5" identifier = identifier) ;)) (expression_statement "eVar10 = (*byte_get)(puVar20,iVar16);" (assignment_expression "eVar10 = (*byte_get)(puVar20,iVar16)" identifier = (call_expression "(*byte_get)(puVar20,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar20,iVar16)" ( identifier , identifier )))) ;) (expression_statement "uVar17 = num_debug_info_entries - 1;" (assignment_expression "uVar17 = num_debug_info_entries - 1" identifier = (binary_expression "num_debug_info_entries - 1" identifier - number_literal)) ;) (if_statement "if (uVar17 < 0xfffffffe) goto LAB_0015415b;" if (parenthesized_expression "(uVar17 < 0xfffffffe)" ( (binary_expression "uVar17 < 0xfffffffe" identifier < number_literal) )) (goto_statement "goto LAB_0015415b;" goto statement_identifier ;)) (labeled_statement "LAB_00153dce:\n      puVar21 = puVar20 + lVar19 + 1;" statement_identifier : (expression_statement "puVar21 = puVar20 + lVar19 + 1;" (assignment_expression "puVar21 = puVar20 + lVar19 + 1" identifier = (binary_expression "puVar20 + lVar19 + 1" (binary_expression "puVar20 + lVar19" identifier + identifier) + number_literal)) ;)) (if_statement "if (puVar22 <= puVar21) goto LAB_00153ddb;" if (parenthesized_expression "(puVar22 <= puVar21)" ( (binary_expression "puVar22 <= puVar21" identifier <= identifier) )) (goto_statement "goto LAB_00153ddb;" goto statement_identifier ;)) (labeled_statement "LAB_001541d0:\n      eVar7 = (*byte_get)(puVar20 + lVar19,1);" statement_identifier : (expression_statement "eVar7 = (*byte_get)(puVar20 + lVar19,1);" (assignment_expression "eVar7 = (*byte_get)(puVar20 + lVar19,1)" identifier = (call_expression "(*byte_get)(puVar20 + lVar19,1)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar20 + lVar19,1)" ( (binary_expression "puVar20 + lVar19" identifier + identifier) , number_literal )))) ;)) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (expression_statement "local_60 = (byte)eVar7;" (assignment_expression "local_60 = (byte)eVar7" identifier = (cast_expression "(byte)eVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar20 = puVar20 + lVar19 + 2;" (assignment_expression "puVar20 = puVar20 + lVar19 + 2" identifier = (binary_expression "puVar20 + lVar19 + 2" (binary_expression "puVar20 + lVar19" identifier + identifier) + number_literal)) ;) (if_statement "if ((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))\n      goto LAB_0015421a;" if (parenthesized_expression "((puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U))" ( (binary_expression "(puVar22 <= puVar20) && (iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)" (parenthesized_expression "(puVar22 <= puVar20)" ( (binary_expression "puVar22 <= puVar20" identifier <= identifier) )) && (parenthesized_expression "(iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U)" ( (comma_expression "iVar16 = iVar4 - (int)puVar21, 7 < iVar16 - 1U" (assignment_expression "iVar16 = iVar4 - (int)puVar21" identifier = (binary_expression "iVar4 - (int)puVar21" identifier - (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar16 - 1U" number_literal < (binary_expression "iVar16 - 1U" identifier - number_literal))) ))) )) (goto_statement "goto LAB_0015421a;" goto statement_identifier ;)) (labeled_statement "LAB_00153e09:\n      eVar7 = (*byte_get)(puVar21,iVar16);" statement_identifier : (expression_statement "eVar7 = (*byte_get)(puVar21,iVar16);" (assignment_expression "eVar7 = (*byte_get)(puVar21,iVar16)" identifier = (call_expression "(*byte_get)(puVar21,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,iVar16)" ( identifier , identifier )))) ;)) (expression_statement "uVar18 = eVar7 & 0xffffffff;" (assignment_expression "uVar18 = eVar7 & 0xffffffff" identifier = (binary_expression "eVar7 & 0xffffffff" identifier & number_literal)) ;) (labeled_statement "LAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;" statement_identifier : (if_statement "if ((ushort)local_70 < 2) goto LAB_00153e21;" if (parenthesized_expression "((ushort)local_70 < 2)" ( (binary_expression "(ushort)local_70 < 2" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_00153e21;" goto statement_identifier ;))) (labeled_statement "LAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" statement_identifier : (expression_statement "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (assignment_expression "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n"" identifier = (string_literal ""Only DWARF 2 and 3 aranges are currently supported.\n"" " string_content escape_sequence ")) ;)) (if_statement "if (uVar14 != 0) {\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);\n        warn(pcVar8);\n      }" { (labeled_statement "LAB_0015423e:\n        pcVar8 = (char *)dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "warn(pcVar8);" (call_expression "warn(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) })) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (if_statement "if ((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)) {\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }\n    else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }" if (parenthesized_expression "((puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8))" ( (binary_expression "(puVar21 < puVar22) && (iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)" (parenthesized_expression "(puVar21 < puVar22)" ( (binary_expression "puVar21 < puVar22" identifier < identifier) )) && (parenthesized_expression "(iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8)" ( (comma_expression "iVar3 = iVar4 - (int)puVar21, iVar3 - 1U < 8" (assignment_expression "iVar3 = iVar4 - (int)puVar21" identifier = (binary_expression "iVar4 - (int)puVar21" identifier - (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n      eVar10 = (*byte_get)(puVar21,iVar3);\n      uVar14 = (ushort)eVar10;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154260;\n      local_70._0_2_ = uVar14 - 2;\n    }" { (expression_statement "eVar10 = (*byte_get)(puVar21,iVar3);" (assignment_expression "eVar10 = (*byte_get)(puVar21,iVar3)" identifier = (call_expression "(*byte_get)(puVar21,iVar3)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,iVar3)" ( identifier , identifier )))) ;) (expression_statement "uVar14 = (ushort)eVar10;" (assignment_expression "uVar14 = (ushort)eVar10" identifier = (cast_expression "(ushort)eVar10" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (if_statement "if (puVar20 + lVar19 < puVar22) goto LAB_00154260;" if (parenthesized_expression "(puVar20 + lVar19 < puVar22)" ( (binary_expression "puVar20 + lVar19 < puVar22" (binary_expression "puVar20 + lVar19" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154260;" goto statement_identifier ;)) (expression_statement "local_70._0_2_ = uVar14 - 2;" (assignment_expression "local_70._0_2_ = uVar14 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar14 - 2" identifier - number_literal)) ;) }) (else_clause "else {\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }" else (compound_statement "{\n      uVar14 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar5 = 0;\n      if (puVar20 + lVar19 < puVar22) goto LAB_00154130;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_70._0_2_ = 0xfffe;" (assignment_expression "local_70._0_2_ = 0xfffe" (field_expression "local_70._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (puVar20 + lVar19 < puVar22) goto LAB_00154130;" if (parenthesized_expression "(puVar20 + lVar19 < puVar22)" ( (binary_expression "puVar20 + lVar19 < puVar22" (binary_expression "puVar20 + lVar19" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00153dbc:\n    eVar10 = 0;" statement_identifier : (expression_statement "eVar10 = 0;" (assignment_expression "eVar10 = 0" identifier = number_literal) ;)) (expression_statement "uVar17 = num_debug_info_entries - 1;" (assignment_expression "uVar17 = num_debug_info_entries - 1" identifier = (binary_expression "num_debug_info_entries - 1" identifier - number_literal)) ;) (if_statement "if (0xfffffffd < uVar17) goto LAB_00153dce;" if (parenthesized_expression "(0xfffffffd < uVar17)" ( (binary_expression "0xfffffffd < uVar17" number_literal < identifier) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (labeled_statement "LAB_0015415b:\n    pdVar11 = &debug_information->cu_offset;" statement_identifier : (expression_statement "pdVar11 = &debug_information->cu_offset;" (assignment_expression "pdVar11 = &debug_information->cu_offset" identifier = (pointer_expression "&debug_information->cu_offset" & (field_expression "debug_information->cu_offset" identifier -> field_identifier))) ;)) (do_statement "do {\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    } while (pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset);" do (compound_statement "{\n      if (eVar10 == *pdVar11) goto LAB_00153dce;\n      pdVar11 = pdVar11 + 0xd;\n    }" { (if_statement "if (eVar10 == *pdVar11) goto LAB_00153dce;" if (parenthesized_expression "(eVar10 == *pdVar11)" ( (binary_expression "eVar10 == *pdVar11" identifier == (pointer_expression "*pdVar11" * identifier)) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (expression_statement "pdVar11 = pdVar11 + 0xd;" (assignment_expression "pdVar11 = pdVar11 + 0xd" identifier = (binary_expression "pdVar11 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset)" ( (binary_expression "pdVar11 != &debug_information[(ulong)uVar17 + 1].cu_offset" identifier != (pointer_expression "&debug_information[(ulong)uVar17 + 1].cu_offset" & (field_expression "debug_information[(ulong)uVar17 + 1].cu_offset" (subscript_expression "debug_information[(ulong)uVar17 + 1]" identifier [ (binary_expression "(ulong)uVar17 + 1" (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) + number_literal) ]) . field_identifier))) )) ;) (expression_statement "pcVar8 = section->name;" (assignment_expression "pcVar8 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" identifier (argument_list "(0,\n                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                                ,5)" ( number_literal , (string_literal "".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar12,eVar10,pcVar8);" (call_expression "warn(pcVar12,eVar10,pcVar8)" identifier (argument_list "(pcVar12,eVar10,pcVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar21 = puVar20 + lVar19 + 1;" (assignment_expression "puVar21 = puVar20 + lVar19 + 1" identifier = (binary_expression "puVar20 + lVar19 + 1" (binary_expression "puVar20 + lVar19" identifier + identifier) + number_literal)) ;) (if_statement "if (puVar21 < puVar22) goto LAB_001541d0;" if (parenthesized_expression "(puVar21 < puVar22)" ( (binary_expression "puVar21 < puVar22" identifier < identifier) )) (goto_statement "goto LAB_001541d0;" goto statement_identifier ;)) (labeled_statement "LAB_00153ddb:\n    puVar20 = puVar20 + lVar19;" statement_identifier : (expression_statement "puVar20 = puVar20 + lVar19;" (assignment_expression "puVar20 = puVar20 + lVar19" identifier = (binary_expression "puVar20 + lVar19" identifier + identifier)) ;)) (if_statement "if ((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)) {\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" if (parenthesized_expression "((puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8))" ( (binary_expression "(puVar20 < puVar22) && (iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)" (parenthesized_expression "(puVar20 < puVar22)" ( (binary_expression "puVar20 < puVar22" identifier < identifier) )) && (parenthesized_expression "(iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8)" ( (comma_expression "iVar16 = iVar4 - (int)puVar20, iVar16 - 1U < 8" (assignment_expression "iVar16 = iVar4 - (int)puVar20" identifier = (binary_expression "iVar4 - (int)puVar20" identifier - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar16 - 1U < 8" (binary_expression "iVar16 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n      uVar18 = 0;\n      eVar7 = (*byte_get)(puVar20,iVar16);\n      local_60 = (byte)eVar7;\n      puVar20 = puVar20 + 2;\n      if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "eVar7 = (*byte_get)(puVar20,iVar16);" (assignment_expression "eVar7 = (*byte_get)(puVar20,iVar16)" identifier = (call_expression "(*byte_get)(puVar20,iVar16)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar20,iVar16)" ( identifier , identifier )))) ;) (expression_statement "local_60 = (byte)eVar7;" (assignment_expression "local_60 = (byte)eVar7" identifier = (cast_expression "(byte)eVar7" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "puVar20 = puVar20 + 2;" (assignment_expression "puVar20 = puVar20 + 2" identifier = (binary_expression "puVar20 + 2" identifier + number_literal)) ;) (if_statement "if (puVar20 < puVar22) {\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }" if (parenthesized_expression "(puVar20 < puVar22)" ( (binary_expression "puVar20 < puVar22" identifier < identifier) )) (compound_statement "{\n        iVar16 = 1;\n        goto LAB_00153e09;\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (goto_statement "goto LAB_00153e15;" goto statement_identifier ;) })) (expression_statement "puVar20 = puVar20 + 2;" (assignment_expression "puVar20 = puVar20 + 2" identifier = (binary_expression "puVar20 + 2" identifier + number_literal)) ;) (if_statement "if (puVar20 < puVar22) {\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }" if (parenthesized_expression "(puVar20 < puVar22)" ( (binary_expression "puVar20 < puVar22" identifier < identifier) )) (compound_statement "{\n      local_60 = 0;\n      iVar16 = 1;\n      goto LAB_00153e09;\n    }" { (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0015421a:\n    uVar18 = 0;" statement_identifier : (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;)) (if_statement "if (1 < (ushort)local_70) goto LAB_00154229;" if (parenthesized_expression "(1 < (ushort)local_70)" ( (binary_expression "1 < (ushort)local_70" number_literal < (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00154229;" goto statement_identifier ;)) (labeled_statement "LAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Length:                   %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Length:                   %ld\n",5)" identifier (argument_list "(0,"  Length:                   %ld\n",5)" ( number_literal , (string_literal ""  Length:                   %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "printf(pcVar8,eVar9);" (call_expression "printf(pcVar8,eVar9)" identifier (argument_list "(pcVar8,eVar9)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Version:                  %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Version:                  %d\n",5)" identifier (argument_list "(0,"  Version:                  %d\n",5)" ( number_literal , (string_literal ""  Version:                  %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,(ulong)uVar14);" (call_expression "printf(pcVar8,(ulong)uVar14)" identifier (argument_list "(pcVar8,(ulong)uVar14)" ( identifier , (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info:  0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info:  0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,eVar10);" (call_expression "printf(pcVar8,eVar10)" identifier (argument_list "(pcVar8,eVar10)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Pointer Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Pointer Size:             %d\n",5)" identifier (argument_list "(0,"  Pointer Size:             %d\n",5)" ( number_literal , (string_literal ""  Pointer Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Segment Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Segment Size:             %d\n",5)" identifier (argument_list "(0,"  Segment Size:             %d\n",5)" ( number_literal , (string_literal ""  Segment Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar17 = (int)uVar18 + (uint)local_60;" (assignment_expression "uVar17 = (int)uVar18 + (uint)local_60" identifier = (binary_expression "(int)uVar18 + (uint)local_60" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)local_60" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "printf(pcVar8,uVar18 & 0xff);" (call_expression "printf(pcVar8,uVar18 & 0xff)" identifier (argument_list "(pcVar8,uVar18 & 0xff)" ( identifier , (binary_expression "uVar18 & 0xff" identifier & number_literal) ))) ;) (if_statement "if (7 < (byte)((byte)uVar17 - 1)) {\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(7 < (byte)((byte)uVar17 - 1))" ( (binary_expression "7 < (byte)((byte)uVar17 - 1)" number_literal < (call_expression "(byte)((byte)uVar17 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((byte)uVar17 - 1)" ( (binary_expression "(byte)uVar17 - 1" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) )))) )) (compound_statement "{\n      pcVar8 = section->name;\n      pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(pcVar12,pcVar8);\n      goto LAB_00154063;\n    }" { (expression_statement "pcVar8 = section->name;" (assignment_expression "pcVar8 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"Invalid address size in %s section!\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Invalid address size in %s section!\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Invalid address size in %s section!\n",5)" identifier (argument_list "(0,"Invalid address size in %s section!\n",5)" ( number_literal , (string_literal ""Invalid address size in %s section!\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar12,pcVar8);" (call_expression "error(pcVar12,pcVar8)" identifier (argument_list "(pcVar12,pcVar8)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "num_bytes = uVar17 & 0xff;" (assignment_expression "num_bytes = uVar17 & 0xff" identifier = (binary_expression "uVar17 & 0xff" identifier & number_literal)) ;) (if_statement "if ((num_bytes - 1 & num_bytes) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" if (parenthesized_expression "((num_bytes - 1 & num_bytes) != 0)" ( (binary_expression "(num_bytes - 1 & num_bytes) != 0" (parenthesized_expression "(num_bytes - 1 & num_bytes)" ( (binary_expression "num_bytes - 1 & num_bytes" (binary_expression "num_bytes - 1" identifier - number_literal) & identifier) )) != number_literal) )) (compound_statement "{\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" { (expression_statement "pcVar8 = "Pointer size + Segment size is not a power of two.\n";" (assignment_expression "pcVar8 = "Pointer size + Segment size is not a power of two.\n"" identifier = (string_literal ""Pointer size + Segment size is not a power of two.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0015423e;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "\n    Address            Length\n";" (assignment_expression "pcVar8 = "\n    Address            Length\n"" identifier = (string_literal ""\n    Address            Length\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if ((byte)uVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }" if (parenthesized_expression "((byte)uVar17 < 5)" ( (binary_expression "(byte)uVar17 < 5" (cast_expression "(byte)uVar17" ( (type_descriptor "byte" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      pcVar8 = "\n    Address    Length\n";\n    }" { (expression_statement "pcVar8 = "\n    Address    Length\n";" (assignment_expression "pcVar8 = "\n    Address    Length\n"" identifier = (string_literal ""\n    Address    Length\n"" " escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "lVar19 = (long)(int)(num_bytes * 2);" (assignment_expression "lVar19 = (long)(int)(num_bytes * 2)" identifier = (cast_expression "(long)(int)(num_bytes * 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(num_bytes * 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(num_bytes * 2)" ( (binary_expression "num_bytes * 2" identifier * number_literal) ))))) ;) (expression_statement "lVar13 = ((long)puVar20 - (long)puVar2) % lVar19;" (assignment_expression "lVar13 = ((long)puVar20 - (long)puVar2) % lVar19" identifier = (binary_expression "((long)puVar20 - (long)puVar2) % lVar19" (parenthesized_expression "((long)puVar20 - (long)puVar2)" ( (binary_expression "(long)puVar20 - (long)puVar2" (cast_expression "(long)puVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) % identifier)) ;) (if_statement "if (lVar13 != 0) {\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }" if (parenthesized_expression "(lVar13 != 0)" ( (binary_expression "lVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);\n    }" { (expression_statement "puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13);" (assignment_expression "puVar20 = puVar20 + (int)(num_bytes * 2 - (int)lVar13)" identifier = (binary_expression "puVar20 + (int)(num_bytes * 2 - (int)lVar13)" identifier + (cast_expression "(int)(num_bytes * 2 - (int)lVar13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(num_bytes * 2 - (int)lVar13)" ( (binary_expression "num_bytes * 2 - (int)lVar13" (binary_expression "num_bytes * 2" identifier * number_literal) - (cast_expression "(int)lVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) })) (expression_statement "puVar2 = puVar2 + eVar9 + local_58;" (assignment_expression "puVar2 = puVar2 + eVar9 + local_58" identifier = (binary_expression "puVar2 + eVar9 + local_58" (binary_expression "puVar2 + eVar9" identifier + identifier) + identifier)) ;) (if_statement "if (puVar20 + lVar19 <= puVar2) {\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }" if (parenthesized_expression "(puVar20 + lVar19 <= puVar2)" ( (binary_expression "puVar20 + lVar19 <= puVar2" (binary_expression "puVar20 + lVar19" identifier + identifier) <= identifier) )) (compound_statement "{\n      uVar18 = (ulong)(uVar17 & 0xff);\n      puVar21 = puVar20 + uVar18;\n      do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);\n    }" { (expression_statement "uVar18 = (ulong)(uVar17 & 0xff);" (assignment_expression "uVar18 = (ulong)(uVar17 & 0xff)" identifier = (call_expression "(ulong)(uVar17 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar17 & 0xff)" ( (binary_expression "uVar17 & 0xff" identifier & number_literal) )))) ;) (expression_statement "puVar21 = puVar20 + uVar18;" (assignment_expression "puVar21 = puVar20 + uVar18" identifier = (binary_expression "puVar20 + uVar18" identifier + identifier)) ;) (do_statement "do {\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      } while (puVar21 + (lVar19 - uVar18) <= puVar2);" do (compound_statement "{\n        puVar1 = puVar20 + uVar18 * 2;\n        uVar17 = num_bytes;\n        uVar15 = num_bytes;\n        if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }\n        puVar21 = puVar21 + uVar18 * 2;\n        printf("    ");\n        print_dwarf_vma(local_70,num_bytes);\n        print_dwarf_vma(eVar9,num_bytes);\n        putc(10,stdout);\n        puVar20 = puVar1;\n      }" { (expression_statement "puVar1 = puVar20 + uVar18 * 2;" (assignment_expression "puVar1 = puVar20 + uVar18 * 2" identifier = (binary_expression "puVar20 + uVar18 * 2" identifier + (binary_expression "uVar18 * 2" identifier * number_literal))) ;) (expression_statement "uVar17 = num_bytes;" (assignment_expression "uVar17 = num_bytes" identifier = identifier) ;) (expression_statement "uVar15 = num_bytes;" (assignment_expression "uVar15 = num_bytes" identifier = identifier) ;) (if_statement "if ((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))) {\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }\n        else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }" if (parenthesized_expression "((puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8))))" ( (binary_expression "(puVar21 < puVar22) ||\n           ((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))" (parenthesized_expression "(puVar21 < puVar22)" ( (binary_expression "puVar21 < puVar22" identifier < identifier) )) || (parenthesized_expression "((puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)))" ( (parenthesized_expression "(puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8))" ( (binary_expression "puVar1 + uVar18 * -2 < puVar22 && (uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)" (binary_expression "puVar1 + uVar18 * -2 < puVar22" (binary_expression "puVar1 + uVar18 * -2" identifier + (binary_expression "uVar18 * -2" identifier * number_literal)) < identifier) && (parenthesized_expression "(uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8)" ( (comma_expression "uVar17 = iVar4 - (int)puVar20, uVar17 - 1 < 8" (assignment_expression "uVar17 = iVar4 - (int)puVar20" identifier = (binary_expression "iVar4 - (int)puVar20" identifier - (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "uVar17 - 1 < 8" (binary_expression "uVar17 - 1" identifier - number_literal) < number_literal)) ))) )) ))) )) (compound_statement "{\n          local_70 = (*byte_get)(puVar20,uVar17);\n          if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;\nLAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);\n        }" { (expression_statement "local_70 = (*byte_get)(puVar20,uVar17);" (assignment_expression "local_70 = (*byte_get)(puVar20,uVar17)" identifier = (call_expression "(*byte_get)(puVar20,uVar17)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar20,uVar17)" ( identifier , identifier )))) ;) (if_statement "if ((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))\n          goto LAB_00153fad;" if (parenthesized_expression "((puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))))" ( (binary_expression "(puVar22 <= puVar1) &&\n             ((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1)))" (parenthesized_expression "(puVar22 <= puVar1)" ( (binary_expression "puVar22 <= puVar1" identifier <= identifier) )) && (parenthesized_expression "((puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1)))" ( (parenthesized_expression "(puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1))" ( (binary_expression "puVar22 <= puVar21 || (uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1)" (binary_expression "puVar22 <= puVar21" identifier <= identifier) || (parenthesized_expression "(uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1)" ( (comma_expression "uVar15 = iVar4 - (int)puVar21, 7 < uVar15 - 1" (assignment_expression "uVar15 = iVar4 - (int)puVar21" identifier = (binary_expression "iVar4 - (int)puVar21" identifier - (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < uVar15 - 1" number_literal < (binary_expression "uVar15 - 1" identifier - number_literal))) ))) )) ))) )) (goto_statement "goto LAB_00153fad;" goto statement_identifier ;)) (labeled_statement "LAB_00154042:\n          eVar9 = (*byte_get)(puVar21,uVar15);" statement_identifier : (expression_statement "eVar9 = (*byte_get)(puVar21,uVar15);" (assignment_expression "eVar9 = (*byte_get)(puVar21,uVar15)" identifier = (call_expression "(*byte_get)(puVar21,uVar15)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,uVar15)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }" else (compound_statement "{\n          local_70 = 0;\n          if (puVar1 < puVar22) goto LAB_00154042;\nLAB_00153fad:\n          eVar9 = 0;\n        }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (puVar1 < puVar22) goto LAB_00154042;" if (parenthesized_expression "(puVar1 < puVar22)" ( (binary_expression "puVar1 < puVar22" identifier < identifier) )) (goto_statement "goto LAB_00154042;" goto statement_identifier ;)) (labeled_statement "LAB_00153fad:\n          eVar9 = 0;" statement_identifier : (expression_statement "eVar9 = 0;" (assignment_expression "eVar9 = 0" identifier = number_literal) ;)) }))) (expression_statement "puVar21 = puVar21 + uVar18 * 2;" (assignment_expression "puVar21 = puVar21 + uVar18 * 2" identifier = (binary_expression "puVar21 + uVar18 * 2" identifier + (binary_expression "uVar18 * 2" identifier * number_literal))) ;) (expression_statement "printf("    ");" (call_expression "printf("    ")" identifier (argument_list "("    ")" ( (string_literal ""    "" " string_content ") ))) ;) (expression_statement "print_dwarf_vma(local_70,num_bytes);" (call_expression "print_dwarf_vma(local_70,num_bytes)" identifier (argument_list "(local_70,num_bytes)" ( identifier , identifier ))) ;) (expression_statement "print_dwarf_vma(eVar9,num_bytes);" (call_expression "print_dwarf_vma(eVar9,num_bytes)" identifier (argument_list "(eVar9,num_bytes)" ( identifier , identifier ))) ;) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "puVar20 = puVar1;" (assignment_expression "puVar20 = puVar1" identifier = identifier) ;) }) while (parenthesized_expression "(puVar21 + (lVar19 - uVar18) <= puVar2)" ( (binary_expression "puVar21 + (lVar19 - uVar18) <= puVar2" (binary_expression "puVar21 + (lVar19 - uVar18)" identifier + (parenthesized_expression "(lVar19 - uVar18)" ( (binary_expression "lVar19 - uVar18" identifier - identifier) ))) <= identifier) )) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined8 FUN_00153ce0(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_00153ce0(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00153ce0(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  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "long local_58;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(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 "uVar21 = *(long *)(param_1 + 0x30) + uVar1;" (assignment_expression "uVar21 = *(long *)(param_1 + 0x30) + uVar1" identifier = (binary_expression "*(long *)(param_1 + 0x30) + uVar1" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) + identifier)) ;) (expression_statement "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" ( (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) )))) , (binary_expression "param_1 + 0x18" identifier + number_literal) ))) ;) (expression_statement "FUN_00150dc0(param_2);" (call_expression "FUN_00150dc0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (do_statement "do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );" do (compound_statement "{\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  }" { (if_statement "if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(uVar21 <= uVar1)" ( (binary_expression "uVar21 <= uVar1" identifier <= identifier) )) (compound_statement "{\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00154063:\n      putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar20 = uVar1 + 4;" (assignment_expression "uVar20 = uVar1 + 4" identifier = (binary_expression "uVar1 + 4" identifier + number_literal)) ;) (if_statement "if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" { (expression_statement "lVar15 = 4;" (assignment_expression "lVar15 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);" statement_identifier : (expression_statement "uVar10 = (*DAT_00196f88)(uVar1,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar1,lVar15)" identifier = (call_expression "(*DAT_00196f88)(uVar1,lVar15)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar1,lVar15)" ( identifier , identifier )))) ;)) (if_statement "if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" if (parenthesized_expression "(uVar10 == 0xffffffff)" ( (binary_expression "uVar10 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }" { (expression_statement "uVar18 = uVar1 + 0xc;" (assignment_expression "uVar18 = uVar1 + 0xc" identifier = (binary_expression "uVar1 + 0xc" identifier + number_literal)) ;) (if_statement "if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (compound_statement "{\n          lVar15 = 8;\n        }" { (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" identifier = number_literal) ;) }) (else_clause "else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" else (if_statement "if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" if (parenthesized_expression "((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U))" ( (binary_expression "(uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" (parenthesized_expression "(uVar21 <= uVar20)" ( (binary_expression "uVar21 <= uVar20" identifier <= identifier) )) || (parenthesized_expression "(lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" ( (comma_expression "lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U" (assignment_expression "lVar15 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "7 < (int)lVar15 - 1U" number_literal < (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (compound_statement "{\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" { (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_00153d5a;" goto statement_identifier ;) })))) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" identifier = number_literal) ;) (expression_statement "uVar10 = (*DAT_00196f88)(uVar20,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar20,lVar15)" identifier = (call_expression "(*DAT_00196f88)(uVar20,lVar15)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,lVar15)" ( identifier , identifier )))) ;) (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" identifier = number_literal) ;) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" identifier = identifier) ;) }) (else_clause "else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" else (compound_statement "{\n        local_58 = 4;\n        uVar19 = 4;\n      }" { (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar18 = uVar20 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = uVar20 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "uVar20 - *(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) )))))) ;) (expression_statement "uVar7 = uVar10 + uVar18;" (assignment_expression "uVar7 = uVar10 + uVar18" identifier = (binary_expression "uVar10 + uVar18" identifier + identifier)) ;) (if_statement "if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;" if (parenthesized_expression "(!CARRY8(uVar10,uVar18))" ( (unary_expression "!CARRY8(uVar10,uVar18)" ! (call_expression "CARRY8(uVar10,uVar18)" identifier (argument_list "(uVar10,uVar18)" ( identifier , identifier )))) )) (goto_statement "goto LAB_00153d6b;" goto statement_identifier ;)) (labeled_statement "LAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);" statement_identifier : (expression_statement "uVar13 = FUN_0013d1e0("x",uVar10,0);" (assignment_expression "uVar13 = FUN_0013d1e0("x",uVar10,0)" identifier = (call_expression "FUN_0013d1e0("x",uVar10,0)" identifier (argument_list "("x",uVar10,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier = (call_expression "dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" identifier (argument_list "(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" ( number_literal , (string_literal ""Debug info is corrupted, %s header at %#lx has length %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar9,uVar18 - local_58,uVar13);" (call_expression "warn(uVar12,uVar9,uVar18 - local_58,uVar13)" identifier (argument_list "(uVar12,uVar9,uVar18 - local_58,uVar13)" ( identifier , identifier , (binary_expression "uVar18 - local_58" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "lVar15 = uVar21 - uVar1;" (assignment_expression "lVar15 = uVar21 - uVar1" identifier = (binary_expression "uVar21 - uVar1" identifier - identifier)) ;) (if_statement "if ((int)lVar15 - 1U < 8) goto LAB_0015408d;" if (parenthesized_expression "((int)lVar15 - 1U < 8)" ( (binary_expression "(int)lVar15 - 1U < 8" (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_0015408d;" goto statement_identifier ;)) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" identifier = number_literal) ;) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" identifier = number_literal) ;) (expression_statement "uVar18 = uVar20;" (assignment_expression "uVar18 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_00153d5a:\n    uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = uVar18 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = uVar18 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "uVar18 - *(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) )))))) ;) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" identifier = identifier) ;) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" statement_identifier : (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" if (parenthesized_expression "(*(ulong *)(param_1 + 0x30) < uVar7)" ( (binary_expression "*(ulong *)(param_1 + 0x30) < uVar7" (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) )))) < identifier) )) (goto_statement "goto LAB_001542aa;" goto statement_identifier ;))) (expression_statement "uVar18 = uVar20 + 2;" (assignment_expression "uVar18 = uVar20 + 2" identifier = (binary_expression "uVar20 + 2" identifier + number_literal)) ;) (expression_statement "iVar2 = (int)uVar21;" (assignment_expression "iVar2 = (int)uVar21" identifier = (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" identifier = identifier) ;) (if_statement "if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" { (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,2);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,2)" identifier = (call_expression "(*DAT_00196f88)(uVar20,2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,2)" ( identifier , number_literal )))) ;) (if_statement "if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" if (parenthesized_expression "(uVar21 <= uVar19 + uVar18)" ( (binary_expression "uVar21 <= uVar19 + uVar18" identifier <= (binary_expression "uVar19 + uVar18" identifier + identifier)) )) (compound_statement "{\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" { (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;) (expression_statement "uVar14 = iVar2 - (int)uVar18;" (assignment_expression "uVar14 = iVar2 - (int)uVar18" identifier = (binary_expression "iVar2 - (int)uVar18" identifier - (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (if_statement "if (uVar14 - 1 < 8) goto LAB_00154130;" if (parenthesized_expression "(uVar14 - 1 < 8)" ( (binary_expression "uVar14 - 1 < 8" (binary_expression "uVar14 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) (goto_statement "goto LAB_00153dbc;" goto statement_identifier ;) })) (labeled_statement "LAB_00154260:\n      local_70._0_2_ = uVar6 - 2;" statement_identifier : (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;)) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" identifier = identifier) ;) (labeled_statement "LAB_00154130:\n      uVar6 = uVar3;" statement_identifier : (expression_statement "uVar6 = uVar3;" (assignment_expression "uVar6 = uVar3" identifier = identifier) ;)) (expression_statement "lVar15 = (*DAT_00196f88)(uVar18,uVar7);" (assignment_expression "lVar15 = (*DAT_00196f88)(uVar18,uVar7)" identifier = (call_expression "(*DAT_00196f88)(uVar18,uVar7)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar18,uVar7)" ( identifier , identifier )))) ;) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (if_statement "if (uVar14 < 0xfffffffe) goto LAB_0015415b;" if (parenthesized_expression "(uVar14 < 0xfffffffe)" ( (binary_expression "uVar14 < 0xfffffffe" identifier < number_literal) )) (goto_statement "goto LAB_0015415b;" goto statement_identifier ;)) (labeled_statement "LAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;" statement_identifier : (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" identifier = (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;)) (if_statement "if (uVar21 <= uVar20) goto LAB_00153ddb;" if (parenthesized_expression "(uVar21 <= uVar20)" ( (binary_expression "uVar21 <= uVar20" identifier <= identifier) )) (goto_statement "goto LAB_00153ddb;" goto statement_identifier ;)) (labeled_statement "LAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" statement_identifier : (expression_statement "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1)" identifier = (call_expression "(*DAT_00196f88)(uVar19 + uVar18,1)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19 + uVar18,1)" ( (binary_expression "uVar19 + uVar18" identifier + identifier) , number_literal )))) ;)) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (expression_statement "uVar19 = uVar19 + uVar18 + 2;" (assignment_expression "uVar19 = uVar19 + uVar18 + 2" identifier = (binary_expression "uVar19 + uVar18 + 2" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;) (if_statement "if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;" if (parenthesized_expression "((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U))" ( (binary_expression "(uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(uVar21 <= uVar19)" ( (binary_expression "uVar21 <= uVar19" identifier <= identifier) )) && (parenthesized_expression "(lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" ( (comma_expression "lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "7 < (int)lVar16 - 1U" number_literal < (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal))) ))) )) (goto_statement "goto LAB_0015421a;" goto statement_identifier ;)) (labeled_statement "LAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);" statement_identifier : (expression_statement "bVar4 = (*DAT_00196f88)(uVar20,lVar16);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar20,lVar16)" identifier = (call_expression "(*DAT_00196f88)(uVar20,lVar16)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,lVar16)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;" statement_identifier : (if_statement "if ((ushort)local_70 < 2) goto LAB_00153e21;" if (parenthesized_expression "((ushort)local_70 < 2)" ( (binary_expression "(ushort)local_70 < 2" (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_00153e21;" goto statement_identifier ;))) (labeled_statement "LAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" statement_identifier : (expression_statement "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (assignment_expression "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n"" identifier = (string_literal ""Only DWARF 2 and 3 aranges are currently supported.\n"" " string_content escape_sequence ")) ;)) (if_statement "if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" { (labeled_statement "LAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar9);" (call_expression "warn(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (if_statement "if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" if (parenthesized_expression "((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8))" ( (binary_expression "(uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) && (parenthesized_expression "((iVar2 - (int)uVar20) - 1U < 8)" ( (binary_expression "(iVar2 - (int)uVar20) - 1U < 8" (binary_expression "(iVar2 - (int)uVar20) - 1U" (parenthesized_expression "(iVar2 - (int)uVar20)" ( (binary_expression "iVar2 - (int)uVar20" identifier - (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\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 )))) ;) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154260;" if (parenthesized_expression "(uVar19 + uVar18 < uVar21)" ( (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154260;" goto statement_identifier ;)) (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" identifier . field_identifier) = (binary_expression "uVar6 - 2" identifier - number_literal)) ;) }) (else_clause "else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" else (compound_statement "{\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "local_70._0_2_ = 0xfffe;" (assignment_expression "local_70._0_2_ = 0xfffe" (field_expression "local_70._0_2_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154130;" if (parenthesized_expression "(uVar19 + uVar18 < uVar21)" ( (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00154130;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00153dbc:\n    lVar15 = 0;" statement_identifier : (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" identifier = number_literal) ;)) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" identifier = (binary_expression "DAT_00196f14 - 1" identifier - number_literal)) ;) (if_statement "if (0xfffffffd < uVar14) goto LAB_00153dce;" if (parenthesized_expression "(0xfffffffd < uVar14)" ( (binary_expression "0xfffffffd < uVar14" number_literal < identifier) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (labeled_statement "LAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);" statement_identifier : (expression_statement "plVar11 = (long *)(DAT_00196f08 + 0x10);" (assignment_expression "plVar11 = (long *)(DAT_00196f08 + 0x10)" identifier = (cast_expression "(long *)(DAT_00196f08 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x10)" ( (binary_expression "DAT_00196f08 + 0x10" identifier + number_literal) )))) ;)) (do_statement "do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));" do (compound_statement "{\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    }" { (if_statement "if (lVar15 == *plVar11) goto LAB_00153dce;" if (parenthesized_expression "(lVar15 == *plVar11)" ( (binary_expression "lVar15 == *plVar11" identifier == (pointer_expression "*plVar11" * identifier)) )) (goto_statement "goto LAB_00153dce;" goto statement_identifier ;)) (expression_statement "plVar11 = plVar11 + 0xd;" (assignment_expression "plVar11 = plVar11 + 0xd" identifier = (binary_expression "plVar11 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "(plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68))" ( (binary_expression "plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" identifier != (cast_expression "(long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" ( (binary_expression "DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68" (binary_expression "DAT_00196f08 + 0x78" identifier + number_literal) + (binary_expression "(ulong)uVar14 * 0x68" (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) )) ;) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);" (assignment_expression "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" identifier = (call_expression "dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" identifier (argument_list "(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" ( number_literal , (string_literal "".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar13,lVar15,uVar9);" (call_expression "warn(uVar13,lVar15,uVar9)" identifier (argument_list "(uVar13,lVar15,uVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" identifier = (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" identifier + identifier) + number_literal)) ;) (if_statement "if (uVar20 < uVar21) goto LAB_001541d0;" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (goto_statement "goto LAB_001541d0;" goto statement_identifier ;)) (labeled_statement "LAB_00153ddb:\n    uVar19 = uVar19 + uVar18;" statement_identifier : (expression_statement "uVar19 = uVar19 + uVar18;" (assignment_expression "uVar19 = uVar19 + uVar18" identifier = (binary_expression "uVar19 + uVar18" identifier + identifier)) ;)) (if_statement "if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" if (parenthesized_expression "((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8))" ( (binary_expression "(uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)" (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) && (parenthesized_expression "((iVar2 - (int)uVar19) - 1U < 8)" ( (binary_expression "(iVar2 - (int)uVar19) - 1U < 8" (binary_expression "(iVar2 - (int)uVar19) - 1U" (parenthesized_expression "(iVar2 - (int)uVar19)" ( (binary_expression "iVar2 - (int)uVar19" identifier - (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (expression_statement "cVar5 = (*DAT_00196f88)(uVar19);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19)" identifier = (call_expression "(*DAT_00196f88)(uVar19)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19)" ( identifier )))) ;) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (if_statement "if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" if (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) (compound_statement "{\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" { (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (goto_statement "goto LAB_00153e15;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" identifier = (binary_expression "uVar19 + 2" identifier + number_literal)) ;) (if_statement "if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" if (parenthesized_expression "(uVar19 < uVar21)" ( (binary_expression "uVar19 < uVar21" identifier < identifier) )) (compound_statement "{\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" { (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00153e09;" goto statement_identifier ;) })) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0015421a:\n    bVar4 = 0;" statement_identifier : (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;)) (if_statement "if (1 < (ushort)local_70) goto LAB_00154229;" if (parenthesized_expression "(1 < (ushort)local_70)" ( (binary_expression "1 < (ushort)local_70" number_literal < (cast_expression "(ushort)local_70" ( (type_descriptor "ushort" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00154229;" goto statement_identifier ;)) (labeled_statement "LAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" statement_identifier : (expression_statement "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Length:                   %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Length:                   %ld\n",5)" identifier (argument_list "(0,"  Length:                   %ld\n",5)" ( number_literal , (string_literal ""  Length:                   %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "printf(pcVar8,uVar10);" (call_expression "printf(pcVar8,uVar10)" identifier (argument_list "(pcVar8,uVar10)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Version:                  %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Version:                  %d\n",5)" identifier (argument_list "(0,"  Version:                  %d\n",5)" ( number_literal , (string_literal ""  Version:                  %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,(ulong)uVar6);" (call_expression "printf(pcVar8,(ulong)uVar6)" identifier (argument_list "(pcVar8,(ulong)uVar6)" ( identifier , (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info:  0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info:  0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,lVar15);" (call_expression "printf(pcVar8,lVar15)" identifier (argument_list "(pcVar8,lVar15)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Pointer Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Pointer Size:             %d\n",5)" identifier (argument_list "(0,"  Pointer Size:             %d\n",5)" ( number_literal , (string_literal ""  Pointer Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Segment Size:             %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Segment Size:             %d\n",5)" identifier (argument_list "(0,"  Segment Size:             %d\n",5)" ( number_literal , (string_literal ""  Segment Size:             %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "bVar17 = bVar4 + cVar5;" (assignment_expression "bVar17 = bVar4 + cVar5" identifier = (binary_expression "bVar4 + cVar5" identifier + identifier)) ;) (expression_statement "printf(pcVar8,(ulong)bVar4);" (call_expression "printf(pcVar8,(ulong)bVar4)" identifier (argument_list "(pcVar8,(ulong)bVar4)" ( identifier , (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (if_statement "if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" if (parenthesized_expression "(7 < (byte)(bVar17 - 1))" ( (binary_expression "7 < (byte)(bVar17 - 1)" number_literal < (call_expression "(byte)(bVar17 - 1)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar17 - 1)" ( (binary_expression "bVar17 - 1" identifier - number_literal) )))) )) (compound_statement "{\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" { (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(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 "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5)" identifier = (call_expression "dcgettext(0,"Invalid address size in %s section!\n",5)" identifier (argument_list "(0,"Invalid address size in %s section!\n",5)" ( number_literal , (string_literal ""Invalid address size in %s section!\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar13,uVar9);" (call_expression "error(uVar13,uVar9)" identifier (argument_list "(uVar13,uVar9)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00154063;" goto statement_identifier ;) })) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" if (parenthesized_expression "((uVar14 - 1 & uVar14) != 0)" ( (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" ( (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" identifier - number_literal) & identifier) )) != number_literal) )) (compound_statement "{\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" { (expression_statement "pcVar8 = "Pointer size + Segment size is not a power of two.\n";" (assignment_expression "pcVar8 = "Pointer size + Segment size is not a power of two.\n"" identifier = (string_literal ""Pointer size + Segment size is not a power of two.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0015423e;" goto statement_identifier ;) })) (expression_statement "pcVar8 = "\n    Address            Length\n";" (assignment_expression "pcVar8 = "\n    Address            Length\n"" identifier = (string_literal ""\n    Address            Length\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }" if (parenthesized_expression "(bVar17 < 5)" ( (binary_expression "bVar17 < 5" identifier < number_literal) )) (compound_statement "{\n      pcVar8 = "\n    Address    Length\n";\n    }" { (expression_statement "pcVar8 = "\n    Address    Length\n";" (assignment_expression "pcVar8 = "\n    Address    Length\n"" identifier = (string_literal ""\n    Address    Length\n"" " escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "lVar15 = (long)(int)(uVar14 * 2);" (assignment_expression "lVar15 = (long)(int)(uVar14 * 2)" identifier = (cast_expression "(long)(int)(uVar14 * 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2)" ( (binary_expression "uVar14 * 2" identifier * number_literal) ))))) ;) (expression_statement "lVar16 = (long)(uVar19 - uVar1) % lVar15;" (assignment_expression "lVar16 = (long)(uVar19 - uVar1) % lVar15" identifier = (binary_expression "(long)(uVar19 - uVar1) % lVar15" (cast_expression "(long)(uVar19 - uVar1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(uVar19 - uVar1)" ( (binary_expression "uVar19 - uVar1" identifier - identifier) ))) % identifier)) ;) (if_statement "if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" if (parenthesized_expression "(lVar16 != 0)" ( (binary_expression "lVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" { (expression_statement "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);" (assignment_expression "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" identifier = (binary_expression "uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" identifier + (cast_expression "(long)(int)(uVar14 * 2 - (int)lVar16)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)(uVar14 * 2 - (int)lVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2 - (int)lVar16)" ( (binary_expression "uVar14 * 2 - (int)lVar16" (binary_expression "uVar14 * 2" identifier * number_literal) - (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) })) (expression_statement "uVar1 = uVar1 + uVar10 + local_58;" (assignment_expression "uVar1 = uVar1 + uVar10 + local_58" identifier = (binary_expression "uVar1 + uVar10 + local_58" (binary_expression "uVar1 + uVar10" identifier + identifier) + identifier)) ;) (if_statement "if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" if (parenthesized_expression "(lVar15 + uVar19 <= uVar1)" ( (binary_expression "lVar15 + uVar19 <= uVar1" (binary_expression "lVar15 + uVar19" identifier + identifier) <= identifier) )) (compound_statement "{\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" { (expression_statement "uVar10 = (ulong)bVar17;" (assignment_expression "uVar10 = (ulong)bVar17" identifier = (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar20 = uVar19 + uVar10;" (assignment_expression "uVar20 = uVar19 + uVar10" identifier = (binary_expression "uVar19 + uVar10" identifier + identifier)) ;) (do_statement "do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);" do (compound_statement "{\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      }" { (expression_statement "uVar18 = uVar19 + uVar10 * 2;" (assignment_expression "uVar18 = uVar19 + uVar10 * 2" identifier = (binary_expression "uVar19 + uVar10 * 2" identifier + (binary_expression "uVar10 * 2" identifier * number_literal))) ;) (if_statement "if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" if (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) (compound_statement "{\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }" { (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);" statement_identifier : (expression_statement "local_70 = (*DAT_00196f88)(uVar19,uVar7);" (assignment_expression "local_70 = (*DAT_00196f88)(uVar19,uVar7)" identifier = (call_expression "(*DAT_00196f88)(uVar19,uVar7)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar19,uVar7)" ( identifier , identifier )))) ;)) (if_statement "if (uVar18 < uVar21) goto LAB_00154040;" if (parenthesized_expression "(uVar18 < uVar21)" ( (binary_expression "uVar18 < uVar21" identifier < identifier) )) (goto_statement "goto LAB_00154040;" goto statement_identifier ;)) (if_statement "if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;" if (parenthesized_expression "((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))" ( (binary_expression "(uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" ( (binary_expression "uVar20 < uVar21" identifier < identifier) )) && (parenthesized_expression "(uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" ( (comma_expression "uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8" (assignment_expression "uVar19 = uVar21 - uVar20" identifier = (binary_expression "uVar21 - uVar20" identifier - identifier)) , (binary_expression "(int)uVar19 - 1U < 8" (binary_expression "(int)uVar19 - 1U" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_00154042;" goto statement_identifier ;)) (labeled_statement "LAB_00153fad:\n          uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" else (compound_statement "{\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" { (if_statement "if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;" if (parenthesized_expression "((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))" ( (binary_expression "(uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" (parenthesized_expression "(uVar10 * -2 + uVar18 < uVar21)" ( (binary_expression "uVar10 * -2 + uVar18 < uVar21" (binary_expression "uVar10 * -2 + uVar18" (binary_expression "uVar10 * -2" identifier * number_literal) + identifier) < identifier) )) && (parenthesized_expression "(uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" ( (comma_expression "uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8" (assignment_expression "uVar7 = uVar21 - uVar19" identifier = (binary_expression "uVar21 - uVar19" identifier - identifier)) , (binary_expression "(int)uVar7 - 1U < 8" (binary_expression "(int)uVar7 - 1U" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal)) ))) )) (goto_statement "goto LAB_0015400e;" goto statement_identifier ;)) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (uVar21 <= uVar18) goto LAB_00153fad;" if (parenthesized_expression "(uVar21 <= uVar18)" ( (binary_expression "uVar21 <= uVar18" identifier <= identifier) )) (goto_statement "goto LAB_00153fad;" goto statement_identifier ;)) (labeled_statement "LAB_00154040:\n          uVar19 = (ulong)uVar14;" statement_identifier : (expression_statement "uVar19 = (ulong)uVar14;" (assignment_expression "uVar19 = (ulong)uVar14" identifier = (cast_expression "(ulong)uVar14" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (labeled_statement "LAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);" statement_identifier : (expression_statement "uVar9 = (*DAT_00196f88)(uVar20,uVar19);" (assignment_expression "uVar9 = (*DAT_00196f88)(uVar20,uVar19)" identifier = (call_expression "(*DAT_00196f88)(uVar20,uVar19)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(uVar20,uVar19)" ( identifier , identifier )))) ;)) }))) (expression_statement "uVar20 = uVar20 + uVar10 * 2;" (assignment_expression "uVar20 = uVar20 + uVar10 * 2" identifier = (binary_expression "uVar20 + uVar10 * 2" identifier + (binary_expression "uVar10 * 2" identifier * number_literal))) ;) (expression_statement "printf("    ");" (call_expression "printf("    ")" identifier (argument_list "("    ")" ( (string_literal ""    "" " string_content ") ))) ;) (expression_statement "FUN_0013d4c0(local_70,uVar14);" (call_expression "FUN_0013d4c0(local_70,uVar14)" identifier (argument_list "(local_70,uVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar9,uVar14);" (call_expression "FUN_0013d4c0(uVar9,uVar14)" identifier (argument_list "(uVar9,uVar14)" ( identifier , identifier ))) ;) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "((lVar15 - uVar10) + uVar20 <= uVar1)" ( (binary_expression "(lVar15 - uVar10) + uVar20 <= uVar1" (binary_expression "(lVar15 - uVar10) + uVar20" (parenthesized_expression "(lVar15 - uVar10)" ( (binary_expression "lVar15 - uVar10" identifier - identifier) )) + identifier) <= identifier) )) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (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 = 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 - IDENT)) , (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , 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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT <= (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT - LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + IDENT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (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 ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (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 , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (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 = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (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 , IDENT ))) ;) (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 , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (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 , IDENT ))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & IDENT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence string_content escape_sequence ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence string_content escape_sequence ")) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - IDENT)) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT) <= IDENT) )) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined8 FUN_00153ce0(long param_1,undefined8 param_2)\n\n{\n  ulong uVar1;\n  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" (type_identifier "undefined8") (function_declarator "FUN_00153ce0(long param_1,undefined8 param_2)" (identifier "FUN_00153ce0") (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  int iVar2;\n  ushort uVar3;\n  byte bVar4;\n  char cVar5;\n  ushort uVar6;\n  ulong uVar7;\n  char *pcVar8;\n  undefined8 uVar9;\n  ulong uVar10;\n  long *plVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  uint uVar14;\n  long lVar15;\n  long lVar16;\n  byte bVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  undefined8 local_70;\n  long local_58;\n  \n  uVar1 = *(ulong *)(param_1 + 0x20);\n  uVar21 = *(long *)(param_1 + 0x30) + uVar1;\n  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  FUN_00150dc0(param_2);\n  do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "ushort uVar6;" (type_identifier "ushort") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "ulong uVar20;" (type_identifier "ulong") (identifier "uVar20") (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "long local_58;" (sized_type_specifier "long" (long "long")) (identifier "local_58") (; ";")) (expression_statement "uVar1 = *(ulong *)(param_1 + 0x20);" (assignment_expression "uVar1 = *(ulong *)(param_1 + 0x20)" (identifier "uVar1") (= "=") (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 "uVar21 = *(long *)(param_1 + 0x30) + uVar1;" (assignment_expression "uVar21 = *(long *)(param_1 + 0x30) + uVar1" (identifier "uVar21") (= "=") (binary_expression "*(long *)(param_1 + 0x30) + uVar1" (pointer_expression "*(long *)(param_1 + 0x30)" (* "*") (cast_expression "(long *)(param_1 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (identifier "uVar1"))) (; ";")) (expression_statement "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" (identifier "FUN_0013ed70") (argument_list "(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" (( "(") (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")) () ")")))) (, ",") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))) (; ";")) (expression_statement "FUN_00150dc0(param_2);" (call_expression "FUN_00150dc0(param_2)" (identifier "FUN_00150dc0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (do_statement "do {\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }\n    uVar20 = uVar1 + 4;\n    if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }\n    lVar15 = uVar21 - uVar1;\n    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;\n    local_58 = 4;\n    uVar19 = 4;\n    uVar18 = uVar20;\nLAB_00153d5a:\n    uVar10 = 0;\n    uVar7 = uVar18 - *(long *)(param_1 + 0x20);\n    uVar20 = uVar18;\n    uVar18 = uVar7;\nLAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;\n    uVar18 = uVar20 + 2;\n    iVar2 = (int)uVar21;\n    uVar7 = uVar19;\n    if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }\n    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }\nLAB_00153dbc:\n    lVar15 = 0;\n    uVar14 = DAT_00196f14 - 1;\n    if (0xfffffffd < uVar14) goto LAB_00153dce;\nLAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);\n    do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));\n    uVar9 = *(undefined8 *)(param_1 + 0x10);\n    uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);\n    warn(uVar13,lVar15,uVar9);\n    uVar20 = uVar19 + uVar18 + 1;\n    if (uVar20 < uVar21) goto LAB_001541d0;\nLAB_00153ddb:\n    uVar19 = uVar19 + uVar18;\n    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }\n    uVar19 = uVar19 + 2;\n    if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }\n    cVar5 = '\0';\nLAB_0015421a:\n    bVar4 = 0;\n    if (1 < (ushort)local_70) goto LAB_00154229;\nLAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);\n    printf(pcVar8,uVar10);\n    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);\n    printf(pcVar8,(ulong)uVar6);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);\n    printf(pcVar8,lVar15);\n    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);\n    printf(pcVar8);\n    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);\n    bVar17 = bVar4 + cVar5;\n    printf(pcVar8,(ulong)bVar4);\n    if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }\n    uVar14 = (uint)bVar17;\n    if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }\n    pcVar8 = "\n    Address            Length\n";\n    if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }\n    pcVar8 = (char *)dcgettext(0,pcVar8,5);\n    printf(pcVar8);\n    lVar15 = (long)(int)(uVar14 * 2);\n    lVar16 = (long)(uVar19 - uVar1) % lVar15;\n    if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }\n    uVar1 = uVar1 + uVar10 + local_58;\n    if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }\n  }" ({ "{") (if_statement "if (uVar21 <= uVar1) {\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" (if "if") (parenthesized_expression "(uVar21 <= uVar1)" (( "(") (binary_expression "uVar21 <= uVar1" (identifier "uVar21") (<= "<=") (identifier "uVar1")) () ")")) (compound_statement "{\nLAB_00154063:\n      putchar(10);\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_00154063:\n      putchar(10);" (statement_identifier "LAB_00154063") (: ":") (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar20 = uVar1 + 4;" (assignment_expression "uVar20 = uVar1 + 4" (identifier "uVar20") (= "=") (binary_expression "uVar1 + 4" (identifier "uVar1") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (uVar20 < uVar21) {\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" (if "if") (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n      lVar15 = 4;\nLAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);\n      if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }\n      uVar18 = uVar20 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar10 + uVar18;\n      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;\nLAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar12,uVar9,uVar18 - local_58,uVar13);\n      goto LAB_00154063;\n    }" ({ "{") (expression_statement "lVar15 = 4;" (assignment_expression "lVar15 = 4" (identifier "lVar15") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0015408d:\n      uVar10 = (*DAT_00196f88)(uVar1,lVar15);" (statement_identifier "LAB_0015408d") (: ":") (expression_statement "uVar10 = (*DAT_00196f88)(uVar1,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar1,lVar15)" (identifier "uVar10") (= "=") (call_expression "(*DAT_00196f88)(uVar1,lVar15)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar1,lVar15)" (( "(") (identifier "uVar1") (, ",") (identifier "lVar15") () ")")))) (; ";"))) (if_statement "if (uVar10 == 0xffffffff) {\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }\n      else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" (if "if") (parenthesized_expression "(uVar10 == 0xffffffff)" (( "(") (binary_expression "uVar10 == 0xffffffff" (identifier "uVar10") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        uVar18 = uVar1 + 0xc;\n        if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }\n        uVar19 = 8;\n        uVar10 = (*DAT_00196f88)(uVar20,lVar15);\n        local_58 = 0xc;\n        uVar20 = uVar18;\n      }" ({ "{") (expression_statement "uVar18 = uVar1 + 0xc;" (assignment_expression "uVar18 = uVar1 + 0xc" (identifier "uVar18") (= "=") (binary_expression "uVar1 + 0xc" (identifier "uVar1") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (uVar18 < uVar21) {\n          lVar15 = 8;\n        }\n        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" (if "if") (parenthesized_expression "(uVar18 < uVar21)" (( "(") (binary_expression "uVar18 < uVar21" (identifier "uVar18") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n          lVar15 = 8;\n        }" ({ "{") (expression_statement "lVar15 = 8;" (assignment_expression "lVar15 = 8" (identifier "lVar15") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" (else "else") (if_statement "if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" (if "if") (parenthesized_expression "((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U))" (( "(") (binary_expression "(uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" (parenthesized_expression "(uVar21 <= uVar20)" (( "(") (binary_expression "uVar21 <= uVar20" (identifier "uVar21") (<= "<=") (identifier "uVar20")) () ")")) (|| "||") (parenthesized_expression "(lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)" (( "(") (comma_expression "lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U" (assignment_expression "lVar15 = uVar21 - uVar20" (identifier "lVar15") (= "=") (binary_expression "uVar21 - uVar20" (identifier "uVar21") (- "-") (identifier "uVar20"))) (, ",") (binary_expression "7 < (int)lVar15 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar15")) (- "-") (number_literal "1U")))) () ")"))) () ")")) (compound_statement "{\n          local_58 = 0xc;\n          uVar19 = 8;\n          goto LAB_00153d5a;\n        }" ({ "{") (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" (identifier "local_58") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" (identifier "uVar19") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_00153d5a;" (goto "goto") (statement_identifier "LAB_00153d5a") (; ";")) (} "}"))))) (expression_statement "uVar19 = 8;" (assignment_expression "uVar19 = 8" (identifier "uVar19") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar10 = (*DAT_00196f88)(uVar20,lVar15);" (assignment_expression "uVar10 = (*DAT_00196f88)(uVar20,lVar15)" (identifier "uVar10") (= "=") (call_expression "(*DAT_00196f88)(uVar20,lVar15)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20,lVar15)" (( "(") (identifier "uVar20") (, ",") (identifier "lVar15") () ")")))) (; ";")) (expression_statement "local_58 = 0xc;" (assignment_expression "local_58 = 0xc" (identifier "local_58") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" (identifier "uVar20") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (else_clause "else {\n        local_58 = 4;\n        uVar19 = 4;\n      }" (else "else") (compound_statement "{\n        local_58 = 4;\n        uVar19 = 4;\n      }" ({ "{") (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" (identifier "local_58") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" (identifier "uVar19") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "uVar18 = uVar20 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = uVar20 - *(long *)(param_1 + 0x20)" (identifier "uVar18") (= "=") (binary_expression "uVar20 - *(long *)(param_1 + 0x20)" (identifier "uVar20") (- "-") (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")) () ")")))))) (; ";")) (expression_statement "uVar7 = uVar10 + uVar18;" (assignment_expression "uVar7 = uVar10 + uVar18" (identifier "uVar7") (= "=") (binary_expression "uVar10 + uVar18" (identifier "uVar10") (+ "+") (identifier "uVar18"))) (; ";")) (if_statement "if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;" (if "if") (parenthesized_expression "(!CARRY8(uVar10,uVar18))" (( "(") (unary_expression "!CARRY8(uVar10,uVar18)" (! "!") (call_expression "CARRY8(uVar10,uVar18)" (identifier "CARRY8") (argument_list "(uVar10,uVar18)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar18") () ")")))) () ")")) (goto_statement "goto LAB_00153d6b;" (goto "goto") (statement_identifier "LAB_00153d6b") (; ";"))) (labeled_statement "LAB_001542aa:\n      uVar13 = FUN_0013d1e0("x",uVar10,0);" (statement_identifier "LAB_001542aa") (: ":") (expression_statement "uVar13 = FUN_0013d1e0("x",uVar10,0);" (assignment_expression "uVar13 = FUN_0013d1e0("x",uVar10,0)" (identifier "uVar13") (= "=") (call_expression "FUN_0013d1e0("x",uVar10,0)" (identifier "FUN_0013d1e0") (argument_list "("x",uVar10,0)" (( "(") (string_literal ""x"" (" """) (string_content "x") (" """)) (, ",") (identifier "uVar10") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar9") (= "=") (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 "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Debug info is corrupted, %s header at %#lx has length %s\n"" (" """) (string_content "Debug info is corrupted, %s header at %#lx has length %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar9,uVar18 - local_58,uVar13);" (call_expression "warn(uVar12,uVar9,uVar18 - local_58,uVar13)" (identifier "warn") (argument_list "(uVar12,uVar9,uVar18 - local_58,uVar13)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar9") (, ",") (binary_expression "uVar18 - local_58" (identifier "uVar18") (- "-") (identifier "local_58")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (goto_statement "goto LAB_00154063;" (goto "goto") (statement_identifier "LAB_00154063") (; ";")) (} "}"))) (expression_statement "lVar15 = uVar21 - uVar1;" (assignment_expression "lVar15 = uVar21 - uVar1" (identifier "lVar15") (= "=") (binary_expression "uVar21 - uVar1" (identifier "uVar21") (- "-") (identifier "uVar1"))) (; ";")) (if_statement "if ((int)lVar15 - 1U < 8) goto LAB_0015408d;" (if "if") (parenthesized_expression "((int)lVar15 - 1U < 8)" (( "(") (binary_expression "(int)lVar15 - 1U < 8" (binary_expression "(int)lVar15 - 1U" (cast_expression "(int)lVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar15")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_0015408d;" (goto "goto") (statement_identifier "LAB_0015408d") (; ";"))) (expression_statement "local_58 = 4;" (assignment_expression "local_58 = 4" (identifier "local_58") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar19 = 4;" (assignment_expression "uVar19 = 4" (identifier "uVar19") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar18 = uVar20;" (assignment_expression "uVar18 = uVar20" (identifier "uVar18") (= "=") (identifier "uVar20")) (; ";")) (labeled_statement "LAB_00153d5a:\n    uVar10 = 0;" (statement_identifier "LAB_00153d5a") (: ":") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar7 = uVar18 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = uVar18 - *(long *)(param_1 + 0x20)" (identifier "uVar7") (= "=") (binary_expression "uVar18 - *(long *)(param_1 + 0x20)" (identifier "uVar18") (- "-") (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")) () ")")))))) (; ";")) (expression_statement "uVar20 = uVar18;" (assignment_expression "uVar20 = uVar18" (identifier "uVar20") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" (identifier "uVar18") (= "=") (identifier "uVar7")) (; ";")) (labeled_statement "LAB_00153d6b:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" (statement_identifier "LAB_00153d6b") (: ":") (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;" (if "if") (parenthesized_expression "(*(ulong *)(param_1 + 0x30) < uVar7)" (( "(") (binary_expression "*(ulong *)(param_1 + 0x30) < uVar7" (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")) () ")")))) (< "<") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_001542aa;" (goto "goto") (statement_identifier "LAB_001542aa") (; ";")))) (expression_statement "uVar18 = uVar20 + 2;" (assignment_expression "uVar18 = uVar20 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar20 + 2" (identifier "uVar20") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar2 = (int)uVar21;" (assignment_expression "iVar2 = (int)uVar21" (identifier "iVar2") (= "=") (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21"))) (; ";")) (expression_statement "uVar7 = uVar19;" (assignment_expression "uVar7 = uVar19" (identifier "uVar7") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (uVar18 < uVar21) {\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" (if "if") (parenthesized_expression "(uVar18 < uVar21)" (( "(") (binary_expression "uVar18 < uVar21" (identifier "uVar18") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n      uVar6 = (*DAT_00196f88)(uVar20,2);\n      if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }\nLAB_00154260:\n      local_70._0_2_ = uVar6 - 2;\n      uVar3 = uVar6;\nLAB_00154130:\n      uVar6 = uVar3;\n      lVar15 = (*DAT_00196f88)(uVar18,uVar7);\n      uVar14 = DAT_00196f14 - 1;\n      if (uVar14 < 0xfffffffe) goto LAB_0015415b;\nLAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;\n      if (uVar21 <= uVar20) goto LAB_00153ddb;\nLAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);\n      lVar16 = 1;\n      uVar19 = uVar19 + uVar18 + 2;\n      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;\nLAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);\nLAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;\nLAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";\n      if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }\n      goto LAB_00154063;\n    }" ({ "{") (expression_statement "uVar6 = (*DAT_00196f88)(uVar20,2);" (assignment_expression "uVar6 = (*DAT_00196f88)(uVar20,2)" (identifier "uVar6") (= "=") (call_expression "(*DAT_00196f88)(uVar20,2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20,2)" (( "(") (identifier "uVar20") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (uVar21 <= uVar19 + uVar18) {\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" (if "if") (parenthesized_expression "(uVar21 <= uVar19 + uVar18)" (( "(") (binary_expression "uVar21 <= uVar19 + uVar18" (identifier "uVar21") (<= "<=") (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18"))) () ")")) (compound_statement "{\n        local_70._0_2_ = uVar6 - 2;\n        uVar14 = iVar2 - (int)uVar18;\n        uVar7 = (ulong)uVar14;\n        uVar3 = uVar6;\n        if (uVar14 - 1 < 8) goto LAB_00154130;\n        goto LAB_00153dbc;\n      }" ({ "{") (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" (identifier "local_70") (. ".") (field_identifier "_0_2_")) (= "=") (binary_expression "uVar6 - 2" (identifier "uVar6") (- "-") (number_literal "2"))) (; ";")) (expression_statement "uVar14 = iVar2 - (int)uVar18;" (assignment_expression "uVar14 = iVar2 - (int)uVar18" (identifier "uVar14") (= "=") (binary_expression "iVar2 - (int)uVar18" (identifier "iVar2") (- "-") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")))) (; ";")) (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" (identifier "uVar7") (= "=") (cast_expression "(ulong)uVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar14"))) (; ";")) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" (identifier "uVar3") (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar14 - 1 < 8) goto LAB_00154130;" (if "if") (parenthesized_expression "(uVar14 - 1 < 8)" (( "(") (binary_expression "uVar14 - 1 < 8" (binary_expression "uVar14 - 1" (identifier "uVar14") (- "-") (number_literal "1")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_00154130;" (goto "goto") (statement_identifier "LAB_00154130") (; ";"))) (goto_statement "goto LAB_00153dbc;" (goto "goto") (statement_identifier "LAB_00153dbc") (; ";")) (} "}"))) (labeled_statement "LAB_00154260:\n      local_70._0_2_ = uVar6 - 2;" (statement_identifier "LAB_00154260") (: ":") (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" (identifier "local_70") (. ".") (field_identifier "_0_2_")) (= "=") (binary_expression "uVar6 - 2" (identifier "uVar6") (- "-") (number_literal "2"))) (; ";"))) (expression_statement "uVar3 = uVar6;" (assignment_expression "uVar3 = uVar6" (identifier "uVar3") (= "=") (identifier "uVar6")) (; ";")) (labeled_statement "LAB_00154130:\n      uVar6 = uVar3;" (statement_identifier "LAB_00154130") (: ":") (expression_statement "uVar6 = uVar3;" (assignment_expression "uVar6 = uVar3" (identifier "uVar6") (= "=") (identifier "uVar3")) (; ";"))) (expression_statement "lVar15 = (*DAT_00196f88)(uVar18,uVar7);" (assignment_expression "lVar15 = (*DAT_00196f88)(uVar18,uVar7)" (identifier "lVar15") (= "=") (call_expression "(*DAT_00196f88)(uVar18,uVar7)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar18,uVar7)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar7") () ")")))) (; ";")) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" (identifier "uVar14") (= "=") (binary_expression "DAT_00196f14 - 1" (identifier "DAT_00196f14") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 < 0xfffffffe) goto LAB_0015415b;" (if "if") (parenthesized_expression "(uVar14 < 0xfffffffe)" (( "(") (binary_expression "uVar14 < 0xfffffffe" (identifier "uVar14") (< "<") (number_literal "0xfffffffe")) () ")")) (goto_statement "goto LAB_0015415b;" (goto "goto") (statement_identifier "LAB_0015415b") (; ";"))) (labeled_statement "LAB_00153dce:\n      uVar20 = uVar19 + uVar18 + 1;" (statement_identifier "LAB_00153dce") (: ":") (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" (identifier "uVar20") (= "=") (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (uVar21 <= uVar20) goto LAB_00153ddb;" (if "if") (parenthesized_expression "(uVar21 <= uVar20)" (( "(") (binary_expression "uVar21 <= uVar20" (identifier "uVar21") (<= "<=") (identifier "uVar20")) () ")")) (goto_statement "goto LAB_00153ddb;" (goto "goto") (statement_identifier "LAB_00153ddb") (; ";"))) (labeled_statement "LAB_001541d0:\n      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" (statement_identifier "LAB_001541d0") (: ":") (expression_statement "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1)" (identifier "cVar5") (= "=") (call_expression "(*DAT_00196f88)(uVar19 + uVar18,1)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar19 + uVar18,1)" (( "(") (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (, ",") (number_literal "1") () ")")))) (; ";"))) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" (identifier "lVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar19 = uVar19 + uVar18 + 2;" (assignment_expression "uVar19 = uVar19 + uVar18 + 2" (identifier "uVar19") (= "=") (binary_expression "uVar19 + uVar18 + 2" (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;" (if "if") (parenthesized_expression "((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U))" (( "(") (binary_expression "(uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(uVar21 <= uVar19)" (( "(") (binary_expression "uVar21 <= uVar19" (identifier "uVar21") (<= "<=") (identifier "uVar19")) () ")")) (&& "&&") (parenthesized_expression "(lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)" (( "(") (comma_expression "lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = uVar21 - uVar20" (identifier "lVar16") (= "=") (binary_expression "uVar21 - uVar20" (identifier "uVar21") (- "-") (identifier "uVar20"))) (, ",") (binary_expression "7 < (int)lVar16 - 1U" (number_literal "7") (< "<") (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar16")) (- "-") (number_literal "1U")))) () ")"))) () ")")) (goto_statement "goto LAB_0015421a;" (goto "goto") (statement_identifier "LAB_0015421a") (; ";"))) (labeled_statement "LAB_00153e09:\n      bVar4 = (*DAT_00196f88)(uVar20,lVar16);" (statement_identifier "LAB_00153e09") (: ":") (expression_statement "bVar4 = (*DAT_00196f88)(uVar20,lVar16);" (assignment_expression "bVar4 = (*DAT_00196f88)(uVar20,lVar16)" (identifier "bVar4") (= "=") (call_expression "(*DAT_00196f88)(uVar20,lVar16)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20,lVar16)" (( "(") (identifier "uVar20") (, ",") (identifier "lVar16") () ")")))) (; ";"))) (labeled_statement "LAB_00153e15:\n      if ((ushort)local_70 < 2) goto LAB_00153e21;" (statement_identifier "LAB_00153e15") (: ":") (if_statement "if ((ushort)local_70 < 2) goto LAB_00153e21;" (if "if") (parenthesized_expression "((ushort)local_70 < 2)" (( "(") (binary_expression "(ushort)local_70 < 2" (cast_expression "(ushort)local_70" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_70")) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00153e21;" (goto "goto") (statement_identifier "LAB_00153e21") (; ";")))) (labeled_statement "LAB_00154229:\n      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (statement_identifier "LAB_00154229") (: ":") (expression_statement "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";" (assignment_expression "pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n"" (identifier "pcVar8") (= "=") (string_literal ""Only DWARF 2 and 3 aranges are currently supported.\n"" (" """) (string_content "Only DWARF 2 and 3 aranges are currently supported.") (escape_sequence "\n") (" """))) (; ";"))) (if_statement "if (uVar6 != 0) {\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);\n        warn(uVar9);\n      }" ({ "{") (labeled_statement "LAB_0015423e:\n        uVar9 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_0015423e") (: ":") (expression_statement "uVar9 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar8,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar9);" (call_expression "warn(uVar9)" (identifier "warn") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00154063;" (goto "goto") (statement_identifier "LAB_00154063") (; ";")) (} "}"))) (if_statement "if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {\n      uVar6 = (*DAT_00196f88)(uVar20);\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\n    }\n    else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" (if "if") (parenthesized_expression "((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8))" (( "(") (binary_expression "(uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (&& "&&") (parenthesized_expression "((iVar2 - (int)uVar20) - 1U < 8)" (( "(") (binary_expression "(iVar2 - (int)uVar20) - 1U < 8" (binary_expression "(iVar2 - (int)uVar20) - 1U" (parenthesized_expression "(iVar2 - (int)uVar20)" (( "(") (binary_expression "iVar2 - (int)uVar20" (identifier "iVar2") (- "-") (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      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;\n      local_70._0_2_ = uVar6 - 2;\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") () ")")))) (; ";")) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154260;" (if "if") (parenthesized_expression "(uVar19 + uVar18 < uVar21)" (( "(") (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (< "<") (identifier "uVar21")) () ")")) (goto_statement "goto LAB_00154260;" (goto "goto") (statement_identifier "LAB_00154260") (; ";"))) (expression_statement "local_70._0_2_ = uVar6 - 2;" (assignment_expression "local_70._0_2_ = uVar6 - 2" (field_expression "local_70._0_2_" (identifier "local_70") (. ".") (field_identifier "_0_2_")) (= "=") (binary_expression "uVar6 - 2" (identifier "uVar6") (- "-") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" (else "else") (compound_statement "{\n      uVar6 = 0;\n      local_70._0_2_ = 0xfffe;\n      uVar3 = 0;\n      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;\n    }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70._0_2_ = 0xfffe;" (assignment_expression "local_70._0_2_ = 0xfffe" (field_expression "local_70._0_2_" (identifier "local_70") (. ".") (field_identifier "_0_2_")) (= "=") (number_literal "0xfffe")) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar19 + uVar18 < uVar21) goto LAB_00154130;" (if "if") (parenthesized_expression "(uVar19 + uVar18 < uVar21)" (( "(") (binary_expression "uVar19 + uVar18 < uVar21" (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (< "<") (identifier "uVar21")) () ")")) (goto_statement "goto LAB_00154130;" (goto "goto") (statement_identifier "LAB_00154130") (; ";"))) (} "}")))) (labeled_statement "LAB_00153dbc:\n    lVar15 = 0;" (statement_identifier "LAB_00153dbc") (: ":") (expression_statement "lVar15 = 0;" (assignment_expression "lVar15 = 0" (identifier "lVar15") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar14 = DAT_00196f14 - 1;" (assignment_expression "uVar14 = DAT_00196f14 - 1" (identifier "uVar14") (= "=") (binary_expression "DAT_00196f14 - 1" (identifier "DAT_00196f14") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (0xfffffffd < uVar14) goto LAB_00153dce;" (if "if") (parenthesized_expression "(0xfffffffd < uVar14)" (( "(") (binary_expression "0xfffffffd < uVar14" (number_literal "0xfffffffd") (< "<") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_00153dce;" (goto "goto") (statement_identifier "LAB_00153dce") (; ";"))) (labeled_statement "LAB_0015415b:\n    plVar11 = (long *)(DAT_00196f08 + 0x10);" (statement_identifier "LAB_0015415b") (: ":") (expression_statement "plVar11 = (long *)(DAT_00196f08 + 0x10);" (assignment_expression "plVar11 = (long *)(DAT_00196f08 + 0x10)" (identifier "plVar11") (= "=") (cast_expression "(long *)(DAT_00196f08 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00196f08 + 0x10)" (( "(") (binary_expression "DAT_00196f08 + 0x10" (identifier "DAT_00196f08") (+ "+") (number_literal "0x10")) () ")")))) (; ";"))) (do_statement "do {\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));" (do "do") (compound_statement "{\n      if (lVar15 == *plVar11) goto LAB_00153dce;\n      plVar11 = plVar11 + 0xd;\n    }" ({ "{") (if_statement "if (lVar15 == *plVar11) goto LAB_00153dce;" (if "if") (parenthesized_expression "(lVar15 == *plVar11)" (( "(") (binary_expression "lVar15 == *plVar11" (identifier "lVar15") (== "==") (pointer_expression "*plVar11" (* "*") (identifier "plVar11"))) () ")")) (goto_statement "goto LAB_00153dce;" (goto "goto") (statement_identifier "LAB_00153dce") (; ";"))) (expression_statement "plVar11 = plVar11 + 0xd;" (assignment_expression "plVar11 = plVar11 + 0xd" (identifier "plVar11") (= "=") (binary_expression "plVar11 + 0xd" (identifier "plVar11") (+ "+") (number_literal "0xd"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68))" (( "(") (binary_expression "plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" (identifier "plVar11") (!= "!=") (cast_expression "(long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68)" (( "(") (binary_expression "DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68" (binary_expression "DAT_00196f08 + 0x78" (identifier "DAT_00196f08") (+ "+") (number_literal "0x78")) (+ "+") (binary_expression "(ulong)uVar14 * 0x68" (cast_expression "(ulong)uVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar14")) (* "*") (number_literal "0x68"))) () ")")))) () ")")) (; ";")) (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar9") (= "=") (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 "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5);" (assignment_expression "uVar13 = dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" (identifier "dcgettext") (argument_list "(0,\n                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",\n                       5)" (( "(") (number_literal "0") (, ",") (string_literal "".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"" (" """) (string_content ".debug_info offset of 0x%lx in %s section does not point to a CU header.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar13,lVar15,uVar9);" (call_expression "warn(uVar13,lVar15,uVar9)" (identifier "warn") (argument_list "(uVar13,lVar15,uVar9)" (( "(") (identifier "uVar13") (, ",") (identifier "lVar15") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "uVar20 = uVar19 + uVar18 + 1;" (assignment_expression "uVar20 = uVar19 + uVar18 + 1" (identifier "uVar20") (= "=") (binary_expression "uVar19 + uVar18 + 1" (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar20 < uVar21) goto LAB_001541d0;" (if "if") (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (goto_statement "goto LAB_001541d0;" (goto "goto") (statement_identifier "LAB_001541d0") (; ";"))) (labeled_statement "LAB_00153ddb:\n    uVar19 = uVar19 + uVar18;" (statement_identifier "LAB_00153ddb") (: ":") (expression_statement "uVar19 = uVar19 + uVar18;" (assignment_expression "uVar19 = uVar19 + uVar18" (identifier "uVar19") (= "=") (binary_expression "uVar19 + uVar18" (identifier "uVar19") (+ "+") (identifier "uVar18"))) (; ";"))) (if_statement "if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" (if "if") (parenthesized_expression "((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8))" (( "(") (binary_expression "(uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)" (parenthesized_expression "(uVar19 < uVar21)" (( "(") (binary_expression "uVar19 < uVar21" (identifier "uVar19") (< "<") (identifier "uVar21")) () ")")) (&& "&&") (parenthesized_expression "((iVar2 - (int)uVar19) - 1U < 8)" (( "(") (binary_expression "(iVar2 - (int)uVar19) - 1U < 8" (binary_expression "(iVar2 - (int)uVar19) - 1U" (parenthesized_expression "(iVar2 - (int)uVar19)" (( "(") (binary_expression "iVar2 - (int)uVar19" (identifier "iVar2") (- "-") (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n      bVar4 = 0;\n      cVar5 = (*DAT_00196f88)(uVar19);\n      uVar19 = uVar19 + 2;\n      if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }\n      goto LAB_00153e15;\n    }" ({ "{") (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" (identifier "bVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar5 = (*DAT_00196f88)(uVar19);" (assignment_expression "cVar5 = (*DAT_00196f88)(uVar19)" (identifier "cVar5") (= "=") (call_expression "(*DAT_00196f88)(uVar19)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")")))) (; ";")) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 2" (identifier "uVar19") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar19 < uVar21) {\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" (if "if") (parenthesized_expression "(uVar19 < uVar21)" (( "(") (binary_expression "uVar19 < uVar21" (identifier "uVar19") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n        lVar16 = 1;\n        goto LAB_00153e09;\n      }" ({ "{") (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" (identifier "lVar16") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00153e09;" (goto "goto") (statement_identifier "LAB_00153e09") (; ";")) (} "}"))) (goto_statement "goto LAB_00153e15;" (goto "goto") (statement_identifier "LAB_00153e15") (; ";")) (} "}"))) (expression_statement "uVar19 = uVar19 + 2;" (assignment_expression "uVar19 = uVar19 + 2" (identifier "uVar19") (= "=") (binary_expression "uVar19 + 2" (identifier "uVar19") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (uVar19 < uVar21) {\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" (if "if") (parenthesized_expression "(uVar19 < uVar21)" (( "(") (binary_expression "uVar19 < uVar21" (identifier "uVar19") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n      cVar5 = '\0';\n      lVar16 = 1;\n      goto LAB_00153e09;\n    }" ({ "{") (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" (identifier "cVar5") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "lVar16 = 1;" (assignment_expression "lVar16 = 1" (identifier "lVar16") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00153e09;" (goto "goto") (statement_identifier "LAB_00153e09") (; ";")) (} "}"))) (expression_statement "cVar5 = '\0';" (assignment_expression "cVar5 = '\0'" (identifier "cVar5") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "LAB_0015421a:\n    bVar4 = 0;" (statement_identifier "LAB_0015421a") (: ":") (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" (identifier "bVar4") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (1 < (ushort)local_70) goto LAB_00154229;" (if "if") (parenthesized_expression "(1 < (ushort)local_70)" (( "(") (binary_expression "1 < (ushort)local_70" (number_literal "1") (< "<") (cast_expression "(ushort)local_70" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "local_70"))) () ")")) (goto_statement "goto LAB_00154229;" (goto "goto") (statement_identifier "LAB_00154229") (; ";"))) (labeled_statement "LAB_00153e21:\n    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (statement_identifier "LAB_00153e21") (: ":") (expression_statement "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Length:                   %ld\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Length:                   %ld\n",5)" (identifier "dcgettext") (argument_list "(0,"  Length:                   %ld\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Length:                   %ld\n"" (" """) (string_content "  Length:                   %ld") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar8,uVar10);" (call_expression "printf(pcVar8,uVar10)" (identifier "printf") (argument_list "(pcVar8,uVar10)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Version:                  %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Version:                  %d\n",5)" (identifier "dcgettext") (argument_list "(0,"  Version:                  %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Version:                  %d\n"" (" """) (string_content "  Version:                  %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8,(ulong)uVar6);" (call_expression "printf(pcVar8,(ulong)uVar6)" (identifier "printf") (argument_list "(pcVar8,(ulong)uVar6)" (( "(") (identifier "pcVar8") (, ",") (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6")) () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5)" (identifier "dcgettext") (argument_list "(0,"  Offset into .debug_info:  0x%lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Offset into .debug_info:  0x%lx\n"" (" """) (string_content "  Offset into .debug_info:  0x%lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8,lVar15);" (call_expression "printf(pcVar8,lVar15)" (identifier "printf") (argument_list "(pcVar8,lVar15)" (( "(") (identifier "pcVar8") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Pointer Size:             %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Pointer Size:             %d\n",5)" (identifier "dcgettext") (argument_list "(0,"  Pointer Size:             %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Pointer Size:             %d\n"" (" """) (string_content "  Pointer Size:             %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" (identifier "printf") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Segment Size:             %d\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Segment Size:             %d\n",5)" (identifier "dcgettext") (argument_list "(0,"  Segment Size:             %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Segment Size:             %d\n"" (" """) (string_content "  Segment Size:             %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "bVar17 = bVar4 + cVar5;" (assignment_expression "bVar17 = bVar4 + cVar5" (identifier "bVar17") (= "=") (binary_expression "bVar4 + cVar5" (identifier "bVar4") (+ "+") (identifier "cVar5"))) (; ";")) (expression_statement "printf(pcVar8,(ulong)bVar4);" (call_expression "printf(pcVar8,(ulong)bVar4)" (identifier "printf") (argument_list "(pcVar8,(ulong)bVar4)" (( "(") (identifier "pcVar8") (, ",") (cast_expression "(ulong)bVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar4")) () ")"))) (; ";")) (if_statement "if (7 < (byte)(bVar17 - 1)) {\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" (if "if") (parenthesized_expression "(7 < (byte)(bVar17 - 1))" (( "(") (binary_expression "7 < (byte)(bVar17 - 1)" (number_literal "7") (< "<") (call_expression "(byte)(bVar17 - 1)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar17 - 1)" (( "(") (binary_expression "bVar17 - 1" (identifier "bVar17") (- "-") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n      uVar9 = *(undefined8 *)(param_1 + 0x10);\n      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);\n      error(uVar13,uVar9);\n      goto LAB_00154063;\n    }" ({ "{") (expression_statement "uVar9 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar9 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar9") (= "=") (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 "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"Invalid address size in %s section!\n",5)" (identifier "dcgettext") (argument_list "(0,"Invalid address size in %s section!\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Invalid address size in %s section!\n"" (" """) (string_content "Invalid address size in %s section!") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar13,uVar9);" (call_expression "error(uVar13,uVar9)" (identifier "error") (argument_list "(uVar13,uVar9)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar9") () ")"))) (; ";")) (goto_statement "goto LAB_00154063;" (goto "goto") (statement_identifier "LAB_00154063") (; ";")) (} "}"))) (expression_statement "uVar14 = (uint)bVar17;" (assignment_expression "uVar14 = (uint)bVar17" (identifier "uVar14") (= "=") (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17"))) (; ";")) (if_statement "if ((uVar14 - 1 & uVar14) != 0) {\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" (if "if") (parenthesized_expression "((uVar14 - 1 & uVar14) != 0)" (( "(") (binary_expression "(uVar14 - 1 & uVar14) != 0" (parenthesized_expression "(uVar14 - 1 & uVar14)" (( "(") (binary_expression "uVar14 - 1 & uVar14" (binary_expression "uVar14 - 1" (identifier "uVar14") (- "-") (number_literal "1")) (& "&") (identifier "uVar14")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar8 = "Pointer size + Segment size is not a power of two.\n";\n      goto LAB_0015423e;\n    }" ({ "{") (expression_statement "pcVar8 = "Pointer size + Segment size is not a power of two.\n";" (assignment_expression "pcVar8 = "Pointer size + Segment size is not a power of two.\n"" (identifier "pcVar8") (= "=") (string_literal ""Pointer size + Segment size is not a power of two.\n"" (" """) (string_content "Pointer size + Segment size is not a power of two.") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0015423e;" (goto "goto") (statement_identifier "LAB_0015423e") (; ";")) (} "}"))) (expression_statement "pcVar8 = "\n    Address            Length\n";" (assignment_expression "pcVar8 = "\n    Address            Length\n"" (identifier "pcVar8") (= "=") (string_literal ""\n    Address            Length\n"" (" """) (escape_sequence "\n") (string_content "    Address            Length") (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (bVar17 < 5) {\n      pcVar8 = "\n    Address    Length\n";\n    }" (if "if") (parenthesized_expression "(bVar17 < 5)" (( "(") (binary_expression "bVar17 < 5" (identifier "bVar17") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n      pcVar8 = "\n    Address    Length\n";\n    }" ({ "{") (expression_statement "pcVar8 = "\n    Address    Length\n";" (assignment_expression "pcVar8 = "\n    Address    Length\n"" (identifier "pcVar8") (= "=") (string_literal ""\n    Address    Length\n"" (" """) (escape_sequence "\n") (string_content "    Address    Length") (escape_sequence "\n") (" """))) (; ";")) (} "}"))) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,pcVar8,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8);" (call_expression "printf(pcVar8)" (identifier "printf") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "lVar15 = (long)(int)(uVar14 * 2);" (assignment_expression "lVar15 = (long)(int)(uVar14 * 2)" (identifier "lVar15") (= "=") (cast_expression "(long)(int)(uVar14 * 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(uVar14 * 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 * 2)" (( "(") (binary_expression "uVar14 * 2" (identifier "uVar14") (* "*") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "lVar16 = (long)(uVar19 - uVar1) % lVar15;" (assignment_expression "lVar16 = (long)(uVar19 - uVar1) % lVar15" (identifier "lVar16") (= "=") (binary_expression "(long)(uVar19 - uVar1) % lVar15" (cast_expression "(long)(uVar19 - uVar1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(uVar19 - uVar1)" (( "(") (binary_expression "uVar19 - uVar1" (identifier "uVar19") (- "-") (identifier "uVar1")) () ")"))) (% "%") (identifier "lVar15"))) (; ";")) (if_statement "if (lVar16 != 0) {\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" (if "if") (parenthesized_expression "(lVar16 != 0)" (( "(") (binary_expression "lVar16 != 0" (identifier "lVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);\n    }" ({ "{") (expression_statement "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);" (assignment_expression "uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" (identifier "uVar19") (= "=") (binary_expression "uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16)" (identifier "uVar19") (+ "+") (cast_expression "(long)(int)(uVar14 * 2 - (int)lVar16)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)(uVar14 * 2 - (int)lVar16)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 * 2 - (int)lVar16)" (( "(") (binary_expression "uVar14 * 2 - (int)lVar16" (binary_expression "uVar14 * 2" (identifier "uVar14") (* "*") (number_literal "2")) (- "-") (cast_expression "(int)lVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar16"))) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar1 = uVar1 + uVar10 + local_58;" (assignment_expression "uVar1 = uVar1 + uVar10 + local_58" (identifier "uVar1") (= "=") (binary_expression "uVar1 + uVar10 + local_58" (binary_expression "uVar1 + uVar10" (identifier "uVar1") (+ "+") (identifier "uVar10")) (+ "+") (identifier "local_58"))) (; ";")) (if_statement "if (lVar15 + uVar19 <= uVar1) {\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" (if "if") (parenthesized_expression "(lVar15 + uVar19 <= uVar1)" (( "(") (binary_expression "lVar15 + uVar19 <= uVar1" (binary_expression "lVar15 + uVar19" (identifier "lVar15") (+ "+") (identifier "uVar19")) (<= "<=") (identifier "uVar1")) () ")")) (compound_statement "{\n      uVar10 = (ulong)bVar17;\n      uVar20 = uVar19 + uVar10;\n      do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);\n    }" ({ "{") (expression_statement "uVar10 = (ulong)bVar17;" (assignment_expression "uVar10 = (ulong)bVar17" (identifier "uVar10") (= "=") (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17"))) (; ";")) (expression_statement "uVar20 = uVar19 + uVar10;" (assignment_expression "uVar20 = uVar19 + uVar10" (identifier "uVar20") (= "=") (binary_expression "uVar19 + uVar10" (identifier "uVar19") (+ "+") (identifier "uVar10"))) (; ";")) (do_statement "do {\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      } while ((lVar15 - uVar10) + uVar20 <= uVar1);" (do "do") (compound_statement "{\n        uVar18 = uVar19 + uVar10 * 2;\n        if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }\n        uVar20 = uVar20 + uVar10 * 2;\n        printf("    ");\n        FUN_0013d4c0(local_70,uVar14);\n        FUN_0013d4c0(uVar9,uVar14);\n        putc(10,stdout);\n        uVar19 = uVar18;\n      }" ({ "{") (expression_statement "uVar18 = uVar19 + uVar10 * 2;" (assignment_expression "uVar18 = uVar19 + uVar10 * 2" (identifier "uVar18") (= "=") (binary_expression "uVar19 + uVar10 * 2" (identifier "uVar19") (+ "+") (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2")))) (; ";")) (if_statement "if (uVar20 < uVar21) {\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }\n        else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" (if "if") (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n          uVar7 = (ulong)uVar14;\nLAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);\n          if (uVar18 < uVar21) goto LAB_00154040;\n          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;\nLAB_00153fad:\n          uVar9 = 0;\n        }" ({ "{") (expression_statement "uVar7 = (ulong)uVar14;" (assignment_expression "uVar7 = (ulong)uVar14" (identifier "uVar7") (= "=") (cast_expression "(ulong)uVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar14"))) (; ";")) (labeled_statement "LAB_0015400e:\n          local_70 = (*DAT_00196f88)(uVar19,uVar7);" (statement_identifier "LAB_0015400e") (: ":") (expression_statement "local_70 = (*DAT_00196f88)(uVar19,uVar7);" (assignment_expression "local_70 = (*DAT_00196f88)(uVar19,uVar7)" (identifier "local_70") (= "=") (call_expression "(*DAT_00196f88)(uVar19,uVar7)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar19,uVar7)" (( "(") (identifier "uVar19") (, ",") (identifier "uVar7") () ")")))) (; ";"))) (if_statement "if (uVar18 < uVar21) goto LAB_00154040;" (if "if") (parenthesized_expression "(uVar18 < uVar21)" (( "(") (binary_expression "uVar18 < uVar21" (identifier "uVar18") (< "<") (identifier "uVar21")) () ")")) (goto_statement "goto LAB_00154040;" (goto "goto") (statement_identifier "LAB_00154040") (; ";"))) (if_statement "if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))\n          goto LAB_00154042;" (if "if") (parenthesized_expression "((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))" (( "(") (binary_expression "(uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" (parenthesized_expression "(uVar20 < uVar21)" (( "(") (binary_expression "uVar20 < uVar21" (identifier "uVar20") (< "<") (identifier "uVar21")) () ")")) (&& "&&") (parenthesized_expression "(uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8)" (( "(") (comma_expression "uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8" (assignment_expression "uVar19 = uVar21 - uVar20" (identifier "uVar19") (= "=") (binary_expression "uVar21 - uVar20" (identifier "uVar21") (- "-") (identifier "uVar20"))) (, ",") (binary_expression "(int)uVar19 - 1U < 8" (binary_expression "(int)uVar19 - 1U" (cast_expression "(int)uVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar19")) (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_00154042;" (goto "goto") (statement_identifier "LAB_00154042") (; ";"))) (labeled_statement "LAB_00153fad:\n          uVar9 = 0;" (statement_identifier "LAB_00153fad") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" (else "else") (compound_statement "{\n          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;\n          local_70 = 0;\n          if (uVar21 <= uVar18) goto LAB_00153fad;\nLAB_00154040:\n          uVar19 = (ulong)uVar14;\nLAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);\n        }" ({ "{") (if_statement "if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))\n          goto LAB_0015400e;" (if "if") (parenthesized_expression "((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))" (( "(") (binary_expression "(uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" (parenthesized_expression "(uVar10 * -2 + uVar18 < uVar21)" (( "(") (binary_expression "uVar10 * -2 + uVar18 < uVar21" (binary_expression "uVar10 * -2 + uVar18" (binary_expression "uVar10 * -2" (identifier "uVar10") (* "*") (number_literal "-2")) (+ "+") (identifier "uVar18")) (< "<") (identifier "uVar21")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8)" (( "(") (comma_expression "uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8" (assignment_expression "uVar7 = uVar21 - uVar19" (identifier "uVar7") (= "=") (binary_expression "uVar21 - uVar19" (identifier "uVar21") (- "-") (identifier "uVar19"))) (, ",") (binary_expression "(int)uVar7 - 1U < 8" (binary_expression "(int)uVar7 - 1U" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (goto_statement "goto LAB_0015400e;" (goto "goto") (statement_identifier "LAB_0015400e") (; ";"))) (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar21 <= uVar18) goto LAB_00153fad;" (if "if") (parenthesized_expression "(uVar21 <= uVar18)" (( "(") (binary_expression "uVar21 <= uVar18" (identifier "uVar21") (<= "<=") (identifier "uVar18")) () ")")) (goto_statement "goto LAB_00153fad;" (goto "goto") (statement_identifier "LAB_00153fad") (; ";"))) (labeled_statement "LAB_00154040:\n          uVar19 = (ulong)uVar14;" (statement_identifier "LAB_00154040") (: ":") (expression_statement "uVar19 = (ulong)uVar14;" (assignment_expression "uVar19 = (ulong)uVar14" (identifier "uVar19") (= "=") (cast_expression "(ulong)uVar14" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar14"))) (; ";"))) (labeled_statement "LAB_00154042:\n          uVar9 = (*DAT_00196f88)(uVar20,uVar19);" (statement_identifier "LAB_00154042") (: ":") (expression_statement "uVar9 = (*DAT_00196f88)(uVar20,uVar19);" (assignment_expression "uVar9 = (*DAT_00196f88)(uVar20,uVar19)" (identifier "uVar9") (= "=") (call_expression "(*DAT_00196f88)(uVar20,uVar19)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(uVar20,uVar19)" (( "(") (identifier "uVar20") (, ",") (identifier "uVar19") () ")")))) (; ";"))) (} "}")))) (expression_statement "uVar20 = uVar20 + uVar10 * 2;" (assignment_expression "uVar20 = uVar20 + uVar10 * 2" (identifier "uVar20") (= "=") (binary_expression "uVar20 + uVar10 * 2" (identifier "uVar20") (+ "+") (binary_expression "uVar10 * 2" (identifier "uVar10") (* "*") (number_literal "2")))) (; ";")) (expression_statement "printf("    ");" (call_expression "printf("    ")" (identifier "printf") (argument_list "("    ")" (( "(") (string_literal ""    "" (" """) (string_content "    ") (" """)) () ")"))) (; ";")) (expression_statement "FUN_0013d4c0(local_70,uVar14);" (call_expression "FUN_0013d4c0(local_70,uVar14)" (identifier "FUN_0013d4c0") (argument_list "(local_70,uVar14)" (( "(") (identifier "local_70") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "FUN_0013d4c0(uVar9,uVar14);" (call_expression "FUN_0013d4c0(uVar9,uVar14)" (identifier "FUN_0013d4c0") (argument_list "(uVar9,uVar14)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" (identifier "uVar19") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((lVar15 - uVar10) + uVar20 <= uVar1)" (( "(") (binary_expression "(lVar15 - uVar10) + uVar20 <= uVar1" (binary_expression "(lVar15 - uVar10) + uVar20" (parenthesized_expression "(lVar15 - uVar10)" (( "(") (binary_expression "lVar15 - uVar10" (identifier "lVar15") (- "-") (identifier "uVar10")) () ")")) (+ "+") (identifier "uVar20")) (<= "<=") (identifier "uVar1")) () ")")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

int function_1(type_1 *section,void *file)

{
  type_2 *var_30;
  type_2 *var_1;
  int var_23;
  int var_9;
  type_3 uVar5;
  type_4 var_17;
  type_5 var_22;
  char *pcVar8;
  type_5 var_7;
  type_5 var_24;
  type_6 *var_25;
  char *message;
  char *pcVar12;
  type_1 *in_RDX;
  long var_29;
  type_3 var_19;
  type_7 var_28;
  type_7 var_31;
  int var_10;
  type_7 var_21;
  type_4 var_11;
  long var_18;
  type_2 *var_8;
  type_2 *var_6;
  type_2 *var_4;
  type_5 local_70;
  type_8 local_60;
  long var_16;
  
  var_1 = section->start;
  var_4 = var_1 + section->size;
  var_2((type_1 *)section->name,(int)section + 0x18,in_RDX);
  var_3(file);
  do {
    if (var_4 <= var_1) {
LAB_00154063:
      var_5(10);
      return 1;
    }
    var_6 = var_1 + 4;
    var_9 = (int)var_4;
    if (var_6 < var_4) {
      var_10 = 4;
LAB_0015408d:
      var_7 = (*byte_get)(var_1,var_10);
      if (var_7 == 0xffffffff) {
        var_8 = var_1 + 0xc;
        if (var_8 < var_4) {
          var_10 = 8;
        }
        else if ((var_4 <= var_6) || (var_10 = var_9 - (int)var_6, 7 < var_10 - 1U)) {
          var_16 = 0xc;
          var_18 = 8;
          goto LAB_00153d5a;
        }
        var_18 = 8;
        var_7 = (*byte_get)(var_6,var_10);
        var_16 = 0xc;
        var_6 = var_8;
      }
      else {
        var_16 = 4;
        var_18 = 4;
      }
      var_11 = (long)var_6 - (long)section->start;
      var_17 = var_7 + var_11;
      if (!var_12(var_7,var_11)) goto LAB_00153d6b;
LAB_001542aa:
      pcVar12 = var_13("x",var_7,0);
      pcVar8 = section->name;
      message = (char *)var_14(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      var_15(message,pcVar8,var_11 - var_16,pcVar12);
      goto LAB_00154063;
    }
    var_10 = var_9 - (int)var_1;
    if (var_10 - 1U < 8) goto LAB_0015408d;
    var_16 = 4;
    var_18 = 4;
    var_8 = var_6;
LAB_00153d5a:
    var_7 = 0;
    var_17 = (long)var_8 - (long)section->start;
    var_6 = var_8;
    var_11 = var_17;
LAB_00153d6b:
    var_10 = (int)var_18;
    if (section->size < var_17) goto LAB_001542aa;
    var_8 = var_6 + 2;
    if (var_8 < var_4) {
      var_24 = (*byte_get)(var_6,2);
      var_19 = (type_3)var_24;
      if (var_4 <= var_8 + var_18) {
        local_70._0_2_ = var_19 - 2;
        var_10 = var_9 - (int)var_8;
        uVar5 = var_19;
        if (var_10 - 1U < 8) goto LAB_00154130;
        goto LAB_00153dbc;
      }
LAB_00154260:
      local_70._0_2_ = var_19 - 2;
      uVar5 = var_19;
LAB_00154130:
      var_19 = uVar5;
      var_24 = (*byte_get)(var_8,var_10);
      var_21 = var_20 - 1;
      if (var_21 < 0xfffffffe) goto LAB_0015415b;
LAB_00153dce:
      var_6 = var_8 + var_18 + 1;
      if (var_4 <= var_6) goto LAB_00153ddb;
LAB_001541d0:
      var_22 = (*byte_get)(var_8 + var_18,1);
      var_10 = 1;
      local_60 = (type_8)var_22;
      var_8 = var_8 + var_18 + 2;
      if ((var_4 <= var_8) && (var_10 = var_9 - (int)var_6, 7 < var_10 - 1U))
      goto LAB_0015421a;
LAB_00153e09:
      var_22 = (*byte_get)(var_6,var_10);
      var_11 = var_22 & 0xffffffff;
LAB_00153e15:
      if ((type_3)local_70 < 2) goto LAB_00153e21;
LAB_00154229:
      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";
      if (var_19 != 0) {
LAB_0015423e:
        pcVar8 = (char *)var_14(0,pcVar8,5);
        var_15(pcVar8);
      }
      goto LAB_00154063;
    }
    if ((var_6 < var_4) && (var_23 = var_9 - (int)var_6, var_23 - 1U < 8)) {
      var_24 = (*byte_get)(var_6,var_23);
      var_19 = (type_3)var_24;
      if (var_8 + var_18 < var_4) goto LAB_00154260;
      local_70._0_2_ = var_19 - 2;
    }
    else {
      var_19 = 0;
      local_70._0_2_ = 0xfffe;
      uVar5 = 0;
      if (var_8 + var_18 < var_4) goto LAB_00154130;
    }
LAB_00153dbc:
    var_24 = 0;
    var_21 = var_20 - 1;
    if (0xfffffffd < var_21) goto LAB_00153dce;
LAB_0015415b:
    var_25 = &debug_information->cu_offset;
    do {
      if (var_24 == *var_25) goto LAB_00153dce;
      var_25 = var_25 + 0xd;
    } while (var_25 != &debug_information[(type_4)var_21 + 1].cu_offset);
    pcVar8 = section->name;
    pcVar12 = (char *)var_14(0,
                                ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                ,5);
    var_15(pcVar12,var_24,pcVar8);
    var_6 = var_8 + var_18 + 1;
    if (var_6 < var_4) goto LAB_001541d0;
LAB_00153ddb:
    var_8 = var_8 + var_18;
    if ((var_8 < var_4) && (var_10 = var_9 - (int)var_8, var_10 - 1U < 8)) {
      var_11 = 0;
      var_22 = (*byte_get)(var_8,var_10);
      local_60 = (type_8)var_22;
      var_8 = var_8 + 2;
      if (var_8 < var_4) {
        var_10 = 1;
        goto LAB_00153e09;
      }
      goto LAB_00153e15;
    }
    var_8 = var_8 + 2;
    if (var_8 < var_4) {
      local_60 = 0;
      var_10 = 1;
      goto LAB_00153e09;
    }
    local_60 = 0;
LAB_0015421a:
    var_11 = 0;
    if (1 < (type_3)local_70) goto LAB_00154229;
LAB_00153e21:
    pcVar8 = (char *)var_14(0,"  Length:                   %ld\n",5);
    var_26(pcVar8,var_7);
    pcVar8 = (char *)var_14(0,"  Version:                  %d\n",5);
    var_26(pcVar8,(type_4)var_19);
    pcVar8 = (char *)var_14(0,"  Offset into .debug_info:  0x%lx\n",5);
    var_26(pcVar8,var_24);
    pcVar8 = (char *)var_14(0,"  Pointer Size:             %d\n",5);
    var_26(pcVar8);
    pcVar8 = (char *)var_14(0,"  Segment Size:             %d\n",5);
    var_21 = (int)var_11 + (type_7)local_60;
    var_26(pcVar8,var_11 & 0xff);
    if (7 < (type_8)((type_8)var_21 - 1)) {
      pcVar8 = section->name;
      pcVar12 = (char *)var_14(0,"Invalid address size in %s section!\n",5);
      var_27(pcVar12,pcVar8);
      goto LAB_00154063;
    }
    var_28 = var_21 & 0xff;
    if ((var_28 - 1 & var_28) != 0) {
      pcVar8 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_0015423e;
    }
    pcVar8 = "\n    Address            Length\n";
    if ((type_8)var_21 < 5) {
      pcVar8 = "\n    Address    Length\n";
    }
    pcVar8 = (char *)var_14(0,pcVar8,5);
    var_26(pcVar8);
    var_18 = (long)(int)(var_28 * 2);
    var_29 = ((long)var_8 - (long)var_1) % var_18;
    if (var_29 != 0) {
      var_8 = var_8 + (int)(var_28 * 2 - (int)var_29);
    }
    var_1 = var_1 + var_7 + var_16;
    if (var_8 + var_18 <= var_1) {
      var_11 = (type_4)(var_21 & 0xff);
      var_6 = var_8 + var_11;
      do {
        var_30 = var_8 + var_11 * 2;
        var_21 = var_28;
        var_31 = var_28;
        if ((var_6 < var_4) ||
           ((var_30 + var_11 * -2 < var_4 && (var_21 = var_9 - (int)var_8, var_21 - 1 < 8)))) {
          local_70 = (*byte_get)(var_8,var_21);
          if ((var_4 <= var_30) &&
             ((var_4 <= var_6 || (var_31 = var_9 - (int)var_6, 7 < var_31 - 1))))
          goto LAB_00153fad;
LAB_00154042:
          var_7 = (*byte_get)(var_6,var_31);
        }
        else {
          local_70 = 0;
          if (var_30 < var_4) goto LAB_00154042;
LAB_00153fad:
          var_7 = 0;
        }
        var_6 = var_6 + var_11 * 2;
        var_26("    ");
        var_32(local_70,var_28);
        var_32(var_7,var_28);
        var_33(10,stdout);
        var_8 = var_30;
      } while (var_6 + (var_18 - var_11) <= var_1);
    }
  } while( true );
}


(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: (primitive_type) 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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) 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: (binary_expression left: (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)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (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: (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: (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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) (binary_expression left: (identifier) right: (identifier)) (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (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))) (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)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (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) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (goto_statement label: (statement_identifier)))) (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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))) (goto_statement label: (statement_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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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) (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) (cast_expression type: (type_descriptor type: (type_identifier)) value: (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) (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)))) (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 (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (escape_sequence) (string_content) (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (escape_sequence) (string_content) (escape_sequence)))))) (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) (identifier) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) right: (identifier))))))) condition: (parenthesized_expression (true))))))

undefined8 MASKED(long param_1,undefined8 param_2)

{
  ulong uVar1;
  int iVar2;
  ushort uVar3;
  byte bVar4;
  char cVar5;
  ushort uVar6;
  ulong uVar7;
  char *pcVar8;
  undefined8 uVar9;
  ulong uVar10;
  long *plVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  uint uVar14;
  long lVar15;
  long lVar16;
  byte bVar17;
  ulong uVar18;
  ulong uVar19;
  ulong uVar20;
  ulong uVar21;
  undefined8 local_70;
  long local_58;
  
  uVar1 = *(ulong *)(param_1 + 0x20);
  uVar21 = *(long *)(param_1 + 0x30) + uVar1;
  FUN_0013ed70(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);
  FUN_00150dc0(param_2);
  do {
    if (uVar21 <= uVar1) {
LAB_00154063:
      putchar(10);
      return 1;
    }
    uVar20 = uVar1 + 4;
    if (uVar20 < uVar21) {
      lVar15 = 4;
LAB_0015408d:
      uVar10 = (*DAT_00196f88)(uVar1,lVar15);
      if (uVar10 == 0xffffffff) {
        uVar18 = uVar1 + 0xc;
        if (uVar18 < uVar21) {
          lVar15 = 8;
        }
        else if ((uVar21 <= uVar20) || (lVar15 = uVar21 - uVar20, 7 < (int)lVar15 - 1U)) {
          local_58 = 0xc;
          uVar19 = 8;
          goto LAB_00153d5a;
        }
        uVar19 = 8;
        uVar10 = (*DAT_00196f88)(uVar20,lVar15);
        local_58 = 0xc;
        uVar20 = uVar18;
      }
      else {
        local_58 = 4;
        uVar19 = 4;
      }
      uVar18 = uVar20 - *(long *)(param_1 + 0x20);
      uVar7 = uVar10 + uVar18;
      if (!CARRY8(uVar10,uVar18)) goto LAB_00153d6b;
LAB_001542aa:
      uVar13 = FUN_0013d1e0("x",uVar10,0);
      uVar9 = *(undefined8 *)(param_1 + 0x10);
      uVar12 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar12,uVar9,uVar18 - local_58,uVar13);
      goto LAB_00154063;
    }
    lVar15 = uVar21 - uVar1;
    if ((int)lVar15 - 1U < 8) goto LAB_0015408d;
    local_58 = 4;
    uVar19 = 4;
    uVar18 = uVar20;
LAB_00153d5a:
    uVar10 = 0;
    uVar7 = uVar18 - *(long *)(param_1 + 0x20);
    uVar20 = uVar18;
    uVar18 = uVar7;
LAB_00153d6b:
    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001542aa;
    uVar18 = uVar20 + 2;
    iVar2 = (int)uVar21;
    uVar7 = uVar19;
    if (uVar18 < uVar21) {
      uVar6 = (*DAT_00196f88)(uVar20,2);
      if (uVar21 <= uVar19 + uVar18) {
        local_70._0_2_ = uVar6 - 2;
        uVar14 = iVar2 - (int)uVar18;
        uVar7 = (ulong)uVar14;
        uVar3 = uVar6;
        if (uVar14 - 1 < 8) goto LAB_00154130;
        goto LAB_00153dbc;
      }
LAB_00154260:
      local_70._0_2_ = uVar6 - 2;
      uVar3 = uVar6;
LAB_00154130:
      uVar6 = uVar3;
      lVar15 = (*DAT_00196f88)(uVar18,uVar7);
      uVar14 = DAT_00196f14 - 1;
      if (uVar14 < 0xfffffffe) goto LAB_0015415b;
LAB_00153dce:
      uVar20 = uVar19 + uVar18 + 1;
      if (uVar21 <= uVar20) goto LAB_00153ddb;
LAB_001541d0:
      cVar5 = (*DAT_00196f88)(uVar19 + uVar18,1);
      lVar16 = 1;
      uVar19 = uVar19 + uVar18 + 2;
      if ((uVar21 <= uVar19) && (lVar16 = uVar21 - uVar20, 7 < (int)lVar16 - 1U)) goto LAB_0015421a;
LAB_00153e09:
      bVar4 = (*DAT_00196f88)(uVar20,lVar16);
LAB_00153e15:
      if ((ushort)local_70 < 2) goto LAB_00153e21;
LAB_00154229:
      pcVar8 = "Only DWARF 2 and 3 aranges are currently supported.\n";
      if (uVar6 != 0) {
LAB_0015423e:
        uVar9 = dcgettext(0,pcVar8,5);
        warn(uVar9);
      }
      goto LAB_00154063;
    }
    if ((uVar20 < uVar21) && ((iVar2 - (int)uVar20) - 1U < 8)) {
      uVar6 = (*DAT_00196f88)(uVar20);
      if (uVar19 + uVar18 < uVar21) goto LAB_00154260;
      local_70._0_2_ = uVar6 - 2;
    }
    else {
      uVar6 = 0;
      local_70._0_2_ = 0xfffe;
      uVar3 = 0;
      if (uVar19 + uVar18 < uVar21) goto LAB_00154130;
    }
LAB_00153dbc:
    lVar15 = 0;
    uVar14 = DAT_00196f14 - 1;
    if (0xfffffffd < uVar14) goto LAB_00153dce;
LAB_0015415b:
    plVar11 = (long *)(DAT_00196f08 + 0x10);
    do {
      if (lVar15 == *plVar11) goto LAB_00153dce;
      plVar11 = plVar11 + 0xd;
    } while (plVar11 != (long *)(DAT_00196f08 + 0x78 + (ulong)uVar14 * 0x68));
    uVar9 = *(undefined8 *)(param_1 + 0x10);
    uVar13 = dcgettext(0,
                       ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n",
                       5);
    warn(uVar13,lVar15,uVar9);
    uVar20 = uVar19 + uVar18 + 1;
    if (uVar20 < uVar21) goto LAB_001541d0;
LAB_00153ddb:
    uVar19 = uVar19 + uVar18;
    if ((uVar19 < uVar21) && ((iVar2 - (int)uVar19) - 1U < 8)) {
      bVar4 = 0;
      cVar5 = (*DAT_00196f88)(uVar19);
      uVar19 = uVar19 + 2;
      if (uVar19 < uVar21) {
        lVar16 = 1;
        goto LAB_00153e09;
      }
      goto LAB_00153e15;
    }
    uVar19 = uVar19 + 2;
    if (uVar19 < uVar21) {
      cVar5 = '\0';
      lVar16 = 1;
      goto LAB_00153e09;
    }
    cVar5 = '\0';
LAB_0015421a:
    bVar4 = 0;
    if (1 < (ushort)local_70) goto LAB_00154229;
LAB_00153e21:
    pcVar8 = (char *)dcgettext(0,"  Length:                   %ld\n",5);
    printf(pcVar8,uVar10);
    pcVar8 = (char *)dcgettext(0,"  Version:                  %d\n",5);
    printf(pcVar8,(ulong)uVar6);
    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info:  0x%lx\n",5);
    printf(pcVar8,lVar15);
    pcVar8 = (char *)dcgettext(0,"  Pointer Size:             %d\n",5);
    printf(pcVar8);
    pcVar8 = (char *)dcgettext(0,"  Segment Size:             %d\n",5);
    bVar17 = bVar4 + cVar5;
    printf(pcVar8,(ulong)bVar4);
    if (7 < (byte)(bVar17 - 1)) {
      uVar9 = *(undefined8 *)(param_1 + 0x10);
      uVar13 = dcgettext(0,"Invalid address size in %s section!\n",5);
      error(uVar13,uVar9);
      goto LAB_00154063;
    }
    uVar14 = (uint)bVar17;
    if ((uVar14 - 1 & uVar14) != 0) {
      pcVar8 = "Pointer size + Segment size is not a power of two.\n";
      goto LAB_0015423e;
    }
    pcVar8 = "\n    Address            Length\n";
    if (bVar17 < 5) {
      pcVar8 = "\n    Address    Length\n";
    }
    pcVar8 = (char *)dcgettext(0,pcVar8,5);
    printf(pcVar8);
    lVar15 = (long)(int)(uVar14 * 2);
    lVar16 = (long)(uVar19 - uVar1) % lVar15;
    if (lVar16 != 0) {
      uVar19 = uVar19 + (long)(int)(uVar14 * 2 - (int)lVar16);
    }
    uVar1 = uVar1 + uVar10 + local_58;
    if (lVar15 + uVar19 <= uVar1) {
      uVar10 = (ulong)bVar17;
      uVar20 = uVar19 + uVar10;
      do {
        uVar18 = uVar19 + uVar10 * 2;
        if (uVar20 < uVar21) {
          uVar7 = (ulong)uVar14;
LAB_0015400e:
          local_70 = (*DAT_00196f88)(uVar19,uVar7);
          if (uVar18 < uVar21) goto LAB_00154040;
          if ((uVar20 < uVar21) && (uVar19 = uVar21 - uVar20, (int)uVar19 - 1U < 8))
          goto LAB_00154042;
LAB_00153fad:
          uVar9 = 0;
        }
        else {
          if ((uVar10 * -2 + uVar18 < uVar21) && (uVar7 = uVar21 - uVar19, (int)uVar7 - 1U < 8))
          goto LAB_0015400e;
          local_70 = 0;
          if (uVar21 <= uVar18) goto LAB_00153fad;
LAB_00154040:
          uVar19 = (ulong)uVar14;
LAB_00154042:
          uVar9 = (*DAT_00196f88)(uVar20,uVar19);
        }
        uVar20 = uVar20 + uVar10 * 2;
        printf("    ");
        FUN_0013d4c0(local_70,uVar14);
        FUN_0013d4c0(uVar9,uVar14);
        putc(10,stdout);
        uVar19 = uVar18;
      } while ((lVar15 - uVar10) + uVar20 <= uVar1);
    }
  } while( true );
}

