
int display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)

{
  int iVar1;
  ushort uVar2;
  uint uVar3;
  uint uVar4;
  ulong uVar5;
  char *pcVar6;
  elf_vma eVar7;
  dwarf_vma dVar8;
  dwarf_vma *pdVar9;
  char *pcVar10;
  long lVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  size_t sVar14;
  elf_vma eVar15;
  char *message;
  dwarf_section *section_1;
  uchar *puVar16;
  uchar *puVar17;
  int iVar18;
  uchar *puVar19;
  ulong uVar20;
  uchar *puVar21;
  uint local_64;
  ulong local_58;
  
  puVar21 = section->start;
  puVar16 = puVar21 + section->size;
  load_debug_info(file);
  introduce((dwarf_section *)section->name,(int)section + 0x18,section_1);
  do {
    if (puVar16 <= puVar21) {
LAB_00125613:
      putchar(10);
      return 1;
    }
    puVar17 = puVar21 + 4;
    iVar1 = (int)puVar16;
    if (puVar17 < puVar16) {
      iVar18 = 4;
LAB_0012523e:
      eVar7 = (*byte_get)(puVar21,iVar18);
      if (eVar7 == 0xffffffff) {
        puVar21 = puVar21 + 0xc;
        if (puVar21 < puVar16) {
          iVar18 = 8;
        }
        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {
          local_64 = 8;
          uVar3 = 0xc;
          puVar17 = puVar21;
          goto LAB_001250d0;
        }
        uVar3 = 0xc;
        eVar7 = (*byte_get)(puVar17,iVar18);
        local_64 = 8;
        puVar17 = puVar21;
      }
      else {
        uVar3 = 4;
        local_64 = 4;
      }
      uVar20 = (long)puVar17 - (long)section->start;
      uVar5 = uVar20 + eVar7;
      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;
LAB_001255ca:
      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);
      pcVar6 = section->name;
      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(message,pcVar6,uVar20 - uVar3,pcVar10);
      goto LAB_00125613;
    }
    iVar18 = iVar1 - (int)puVar21;
    if (iVar18 - 1U < 8) goto LAB_0012523e;
    local_64 = 4;
    uVar3 = 4;
LAB_001250d0:
    eVar7 = 0;
    uVar5 = (long)puVar17 - (long)section->start;
    uVar20 = uVar5;
LAB_001250e2:
    if (section->size < uVar5) goto LAB_001255ca;
    puVar21 = puVar17 + eVar7;
    puVar19 = puVar17 + 2;
    uVar3 = local_64;
    if (puVar19 < puVar16) {
      eVar15 = (*byte_get)(puVar17,2);
      uVar4 = (uint)eVar15;
      puVar17 = puVar19 + local_64;
      if (puVar16 <= puVar17) {
        uVar2 = (short)eVar15 - 2;
        uVar3 = iVar1 - (int)puVar19;
        local_58 = eVar15 & 0xffff;
        if (uVar3 - 1 < 8) goto LAB_001252cb;
        goto LAB_00125146;
      }
LAB_001252b8:
      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;
      uVar2 = (short)uVar4 - 2;
LAB_001252cb:
      dVar8 = (*byte_get)(puVar19,uVar3);
    }
    else {
      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {
        eVar15 = (*byte_get)(puVar17,iVar18);
        uVar4 = (uint)eVar15;
        puVar17 = puVar19 + local_64;
        if (puVar17 < puVar16) goto LAB_001252b8;
        uVar2 = (short)eVar15 - 2;
        local_58 = eVar15 & 0xffff;
      }
      else {
        local_58 = 0;
        uVar2 = 0xfffe;
        puVar17 = puVar19 + local_64;
        if (puVar17 < puVar16) goto LAB_001252cb;
      }
LAB_00125146:
      dVar8 = 0;
    }
    if (num_debug_info_entries - 1 < 0xfffffffe) {
      pdVar9 = &debug_information->cu_offset;
      do {
        if (dVar8 == *pdVar9) goto LAB_00125158;
        pdVar9 = pdVar9 + 0xd;
      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);
      pcVar6 = section->name;
      pcVar10 = (char *)dcgettext(0,
                                  ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                  ,5);
      warn(pcVar10,dVar8,pcVar6);
    }
LAB_00125158:
    puVar19 = puVar17 + local_64;
    uVar3 = local_64;
    if ((puVar19 < puVar16) ||
       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {
      eVar15 = (*byte_get)(puVar17,uVar3);
    }
    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar6,eVar7);
    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar6,local_58);
    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar6,dVar8);
    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar6,eVar15);
    if (uVar2 < 2) {
      pcVar6 = "\n    Offset  Kind          Name\n";
      if (is_gnu == 0) {
        pcVar6 = "\n    Offset\tName\n";
      }
      pcVar6 = (char *)dcgettext(0,pcVar6,5);
      printf(pcVar6);
      do {
        puVar17 = puVar19 + local_64;
        if (puVar16 <= puVar17) {
          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {
            (*byte_get)(puVar19,iVar1);
          }
          break;
        }
        eVar7 = (*byte_get)(puVar19,local_64);
        if (eVar7 == 0) break;
        lVar11 = (long)puVar16 - (long)puVar17;
        if (is_gnu == 0) {
          uVar20 = lVar11 - 1;
          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);
        }
        else {
          uVar20 = lVar11 - 2;
          puVar19 = puVar17 + 1;
          iVar18 = is_gnu;
          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {
            eVar15 = (*byte_get)(puVar17,iVar18);
            uVar3 = (int)eVar15 << 0x18;
            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);
            if (-1 < (int)uVar3) goto LAB_0012547a;
            uVar13 = dcgettext(0,"s",5);
          }
          else {
            uVar12 = dcgettext(0,"no info",5);
LAB_0012547a:
            uVar13 = dcgettext(0,"g",5);
          }
          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);
          puVar17 = puVar19;
        }
        sVar14 = strnlen((char *)puVar17,uVar20);
        puVar19 = puVar17 + sVar14 + 1;
      } while (puVar19 < puVar16);
    }
    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {
      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn(pcVar6);
      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;
    }
  } while( true );
}



undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)

{
  int iVar1;
  uint uVar2;
  ushort uVar3;
  ushort uVar4;
  uint uVar5;
  int iVar6;
  ulong uVar7;
  char *pcVar8;
  ulong uVar9;
  long *plVar10;
  undefined8 uVar11;
  undefined8 uVar12;
  size_t sVar13;
  undefined8 uVar14;
  char *pcVar15;
  long lVar16;
  char *pcVar17;
  ulong uVar18;
  char *pcVar19;
  uint local_64;
  
  pcVar19 = *(char **)(param_1 + 0x20);
  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);
  FUN_00122790(param_2);
  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);
  do {
    if (pcVar15 <= pcVar19) {
LAB_00125613:
      putchar(10);
      return 1;
    }
    pcVar8 = pcVar19 + 4;
    if (pcVar8 < pcVar15) {
      lVar16 = 4;
LAB_0012523e:
      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);
      if (uVar9 == 0xffffffff) {
        pcVar19 = pcVar19 + 0xc;
        if (pcVar19 < pcVar15) {
          lVar16 = 8;
        }
        else if ((pcVar15 <= pcVar8) ||
                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {
          local_64 = 8;
          uVar5 = 0xc;
          pcVar8 = pcVar19;
          goto LAB_001250d0;
        }
        uVar5 = 0xc;
        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);
        local_64 = 8;
        pcVar8 = pcVar19;
      }
      else {
        uVar5 = 4;
        local_64 = 4;
      }
      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);
      uVar7 = uVar18 + uVar9;
      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;
LAB_001255ca:
      uVar12 = FUN_0010ebb0("x",uVar9,0);
      uVar11 = *(undefined8 *)(param_1 + 0x10);
      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);
      goto LAB_00125613;
    }
    lVar16 = (long)pcVar15 - (long)pcVar19;
    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;
    local_64 = 4;
    uVar5 = 4;
LAB_001250d0:
    uVar9 = 0;
    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);
    uVar18 = uVar7;
LAB_001250e2:
    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;
    pcVar19 = pcVar8 + uVar9;
    pcVar17 = pcVar8 + 2;
    iVar1 = (int)pcVar15;
    uVar5 = local_64;
    if (pcVar17 < pcVar15) {
      uVar3 = (*DAT_00159e20)(pcVar8,2);
      pcVar8 = pcVar17 + local_64;
      if (pcVar15 <= pcVar8) {
        uVar4 = uVar3 - 2;
        uVar5 = iVar1 - (int)pcVar17;
        uVar2 = (uint)uVar3;
        if (uVar5 - 1 < 8) goto LAB_001252cb;
        goto LAB_00125146;
      }
LAB_001252b8:
      uVar2 = (uint)uVar3;
      uVar4 = uVar3 - 2;
LAB_001252cb:
      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);
    }
    else {
      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {
        uVar3 = (*DAT_00159e20)(pcVar8);
        pcVar8 = pcVar17 + local_64;
        if (pcVar8 < pcVar15) goto LAB_001252b8;
        uVar4 = uVar3 - 2;
        uVar2 = (uint)uVar3;
      }
      else {
        uVar2 = 0;
        uVar4 = 0xfffe;
        pcVar8 = pcVar17 + local_64;
        if (pcVar8 < pcVar15) goto LAB_001252cb;
      }
LAB_00125146:
      lVar16 = 0;
    }
    if (DAT_00159bd4 - 1U < 0xfffffffe) {
      plVar10 = (long *)(DAT_00159bc8 + 0x10);
      do {
        if (lVar16 == *plVar10) goto LAB_00125158;
        plVar10 = plVar10 + 0xd;
      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);
      uVar11 = *(undefined8 *)(param_1 + 0x10);
      uVar12 = dcgettext(0,
                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                         ,5);
      warn(uVar12,lVar16,uVar11);
    }
LAB_00125158:
    pcVar17 = pcVar8 + local_64;
    uVar5 = local_64;
    if ((pcVar17 < pcVar15) ||
       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {
      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);
    }
    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar8,uVar9);
    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar8,uVar2);
    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar8,lVar16);
    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar8,uVar11);
    if (uVar4 < 2) {
      pcVar8 = "\n    Offset  Kind          Name\n";
      if (param_3 == 0) {
        pcVar8 = "\n    Offset\tName\n";
      }
      pcVar8 = (char *)dcgettext(0,pcVar8,5);
      printf(pcVar8);
      do {
        pcVar8 = pcVar17 + local_64;
        if (pcVar15 <= pcVar8) {
          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {
            (*DAT_00159e20)();
          }
          break;
        }
        lVar16 = (*DAT_00159e20)(pcVar17,local_64);
        if (lVar16 == 0) break;
        uVar9 = (long)pcVar15 - (long)pcVar8;
        if (param_3 == 0) {
          uVar18 = uVar9 - 1;
          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);
        }
        else {
          uVar18 = uVar9 - 2;
          pcVar17 = pcVar8 + 1;
          if (pcVar17 < pcVar15) {
            uVar9 = (ulong)param_3;
LAB_001254d4:
            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);
            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);
            if (-1 < iVar6 << 0x18) goto LAB_0012547a;
            uVar12 = dcgettext(0,"s",5);
          }
          else {
            if ((int)uVar9 - 1U < 8) {
              uVar9 = uVar9 & 0xffffffff;
              goto LAB_001254d4;
            }
            uVar11 = dcgettext(0,"no info",5);
LAB_0012547a:
            uVar12 = dcgettext(0,"g",5);
          }
          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);
          pcVar8 = pcVar17;
        }
        sVar13 = strnlen(pcVar8,uVar18);
        pcVar17 = pcVar8 + sVar13 + 1;
      } while (pcVar17 < pcVar15);
    }
    else if (DAT_00157488 == 0) {
      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn();
      DAT_00157488 = 1;
    }
  } while( true );
}


PUSH R15
PUSH R14
MOV R14,RDI
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV R15,qword ptr [RDI + 0x20]
MOV RBX,qword ptr [RDI + 0x30]
MOV qword ptr [RSP + 0x18],RDI
MOV RDI,RSI
MOV dword ptr [RSP + 0x20],EDX
ADD RBX,R15
MOV qword ptr [RSP + 0x8],R15
CALL 0x00122790
MOV RDI,qword ptr [R14 + 0x10]
LEA RSI,[R14 + 0x18]
CALL 0x00110740
CMP R15,RBX
JC 0x00125227
JMP 0x00125613
MOV RSI,RBX
SUB RSI,RAX
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x0012523e
MOV dword ptr [RSP + 0x4],0x4
MOV R12D,0x4
MOV RCX,qword ptr [RSP + 0x18]
MOV RAX,RBP
XOR R14D,R14D
SUB RAX,qword ptr [RCX + 0x20]
MOV R13,RAX
MOV RCX,qword ptr [RSP + 0x18]
CMP qword ptr [RCX + 0x30],RAX
JC 0x001255ca
LEA RAX,[RBP + R14*0x1]
LEA R12,[RBP + 0x2]
MOV qword ptr [RSP + 0x8],RAX
CMP R12,RBX
JC 0x00125360
CMP RBX,RBP
JBE 0x0012511f
MOV RSI,RBX
SUB RSI,RBP
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00125652
MOV R13D,dword ptr [RSP + 0x4]
MOV EAX,0xfffffffe
MOV dword ptr [RSP + 0x10],0x0
MOV word ptr [RSP + 0x24],AX
LEA R9,[R12 + R13*0x1]
CMP RBX,R9
JA 0x001252c7
XOR R12D,R12D
MOV EAX,dword ptr [0x00159bd4]
LEA EDX,[RAX + -0x1]
CMP EDX,-0x3
JBE 0x001252f3
LEA RBP,[R9 + R13*0x1]
CMP RBP,RBX
JC 0x001252a0
XOR R15D,R15D
CMP RBX,R9
JBE 0x00125181
MOV RAX,RBX
SUB RAX,R9
MOV ESI,EAX
SUB EAX,0x1
CMP EAX,0x7
JBE 0x001252a4
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x1414c8]
CALL 0x00107230
MOV RSI,R14
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107290
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x1414f8]
CALL 0x00107230
MOV ESI,dword ptr [RSP + 0x10]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107290
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x141528]
CALL 0x00107230
MOV RSI,R12
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107290
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x141558]
CALL 0x00107230
MOV RSI,R15
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107290
CMP word ptr [RSP + 0x24],0x1
JBE 0x001253b0
MOV ESI,dword ptr [0x00157488]
TEST ESI,ESI
JZ 0x00125560
CMP RBX,qword ptr [RSP + 0x8]
JBE 0x00125613
MOV RAX,qword ptr [RSP + 0x8]
LEA RBP,[RAX + 0x4]
CMP RBP,RBX
JNC 0x001250b0
MOV ESI,0x4
MOV R15,qword ptr [RSP + 0x8]
MOV RDI,R15
CALL qword ptr [0x00159e20]
MOV R14,RAX
MOV EAX,0xffffffff
CMP R14,RAX
JNZ 0x00125638
ADD R15,0xc
MOV R12,R15
CMP R15,RBX
JC 0x00125590
CMP RBP,RBX
JNC 0x00125284
MOV RSI,RBX
SUB RSI,RBP
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JBE 0x00125595
MOV RBP,R12
MOV dword ptr [RSP + 0x4],0x8
MOV R12D,0xc
JMP 0x001250d0
MOV ESI,dword ptr [RSP + 0x4]
MOV RDI,R9
CALL qword ptr [0x00159e20]
MOV R15,RAX
JMP 0x00125181
MOVZX EAX,CX
MOV dword ptr [RSP + 0x10],EAX
LEA EAX,[RCX + -0x2]
MOV word ptr [RSP + 0x24],AX
MOV ESI,dword ptr [RSP + 0x4]
MOV qword ptr [RSP + 0x28],R9
MOV RDI,R12
CALL qword ptr [0x00159e20]
MOV R9,qword ptr [RSP + 0x28]
MOV R12,RAX
MOV EAX,dword ptr [0x00159bd4]
LEA EDX,[RAX + -0x1]
CMP EDX,-0x3
JA 0x00125158
MOV RCX,qword ptr [0x00159bc8]
LEA RSI,[RDX + RDX*0x2]
LEA RDX,[RDX + RSI*0x4]
LEA RAX,[RCX + 0x10]
LEA RDX,[RCX + RDX*0x8 + 0x78]
NOP dword ptr [RAX + RAX*0x1]
CMP R12,qword ptr [RAX]
JZ 0x00125158
ADD RAX,0x68
CMP RDX,RAX
JNZ 0x00125310
MOV RAX,qword ptr [RSP + 0x18]
MOV EDX,0x5
LEA RSI,[0x1415e8]
XOR EDI,EDI
MOV qword ptr [RSP + 0x28],R9
MOV RBP,qword ptr [RAX + 0x10]
CALL 0x00107230
MOV RSI,R12
MOV RDI,RAX
MOV RDX,RBP
XOR EAX,EAX
CALL 0x001379e0
MOV R9,qword ptr [RSP + 0x28]
JMP 0x00125158
MOV ESI,0x2
MOV RDI,RBP
CALL qword ptr [0x00159e20]
MOV R13D,dword ptr [RSP + 0x4]
MOV ECX,EAX
LEA R9,[R12 + R13*0x1]
CMP R9,RBX
JC 0x001252b8
MOVZX ECX,AX
SUB EAX,0x2
MOV word ptr [RSP + 0x24],AX
MOV RAX,RBX
SUB RAX,R12
MOV dword ptr [RSP + 0x10],ECX
MOV ESI,EAX
SUB EAX,0x1
CMP EAX,0x7
JA 0x00125143
JMP 0x001252cb
MOV ECX,dword ptr [RSP + 0x20]
MOV EDX,0x5
LEA RSI,[0x1415c0]
TEST ECX,ECX
JNZ 0x001253cb
LEA RSI,[0x14343b]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107290
MOV qword ptr [RSP + 0x10],R13
MOV RDI,RBP
NOP dword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x10]
LEA R15,[RDI + RAX*0x1]
CMP R15,RBX
JC 0x00125420
CMP RDI,RBX
JNC 0x0012521c
MOV RSI,RBX
SUB RSI,RDI
LEA EAX,[RSI + -0x1]
CMP EAX,0x7
JA 0x0012521c
CALL qword ptr [0x00159e20]
JMP 0x0012521c
MOV ESI,dword ptr [RSP + 0x4]
CALL qword ptr [0x00159e20]
MOV R13,RAX
TEST RAX,RAX
JZ 0x0012521c
MOV EDX,dword ptr [RSP + 0x20]
MOV RAX,RBX
SUB RAX,R15
TEST EDX,EDX
JZ 0x00125538
LEA R12,[RAX + -0x2]
LEA RBP,[R15 + 0x1]
MOV R14D,R12D
CMP RBP,RBX
JC 0x001254d0
LEA EDX,[RAX + -0x1]
CMP EDX,0x7
JBE 0x0012564b
MOV EDX,0x5
LEA RSI,[0x143478]
XOR EDI,EDI
CALL 0x00107230
MOV R15,RAX
MOV EDX,0x5
LEA RSI,[0x1488fa]
XOR EDI,EDI
CALL 0x00107230
MOV RDX,RAX
MOV R9,RBP
MOV R8D,R14D
MOV RCX,R15
MOV RSI,R13
LEA RDI,[0x14344d]
XOR EAX,EAX
CALL 0x00107290
MOV RDI,RBP
MOV RSI,R12
CALL 0x00107340
LEA RDI,[RBP + RAX*0x1 + 0x1]
CMP RBX,RDI
JA 0x001253e8
JMP 0x0012521c
MOV ESI,dword ptr [RSP + 0x20]
MOV RDI,R15
CALL qword ptr [0x00159e20]
LEA RCX,[0x1533c0]
MOV EDX,0x5
XOR EDI,EDI
MOV R8D,EAX
SHL R8D,0x18
MOV EAX,R8D
MOV dword ptr [RSP + 0x24],R8D
SHR EAX,0x1c
AND EAX,0x7
MOV RSI,qword ptr [RCX + RAX*0x8]
CALL 0x00107230
MOV R8D,dword ptr [RSP + 0x24]
MOV R15,RAX
TEST R8D,R8D
JNS 0x0012547a
MOV EDX,0x5
LEA RSI,[0x141fbe]
XOR EDI,EDI
CALL 0x00107230
JMP 0x0012548d
LEA R12,[RAX + -0x1]
MOV RCX,R15
MOV RSI,R13
XOR EAX,EAX
MOV EDX,R12D
LEA RDI,[0x143468]
MOV RBP,R15
CALL 0x00107290
JMP 0x001254aa
MOV EDX,0x5
LEA RSI,[0x141588]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001379e0
MOV dword ptr [0x00157488],0x1
JMP 0x0012521c
MOV ESI,0x8
MOV RDI,RBP
MOV RBP,R12
MOV R12D,0xc
CALL qword ptr [0x00159e20]
MOV dword ptr [RSP + 0x4],0x8
MOV R14,RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV R13,RBP
SUB R13,qword ptr [RAX + 0x20]
MOV RAX,R13
ADD RAX,R14
JNC 0x001250e2
MOV RSI,R14
XOR EDX,EDX
LEA RDI,[0x13d841]
MOV R14D,R12D
CALL 0x0010ebb0
MOV EDX,0x5
LEA RSI,[0x13f150]
XOR EDI,EDI
MOV RBP,RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV RBX,qword ptr [RAX + 0x10]
CALL 0x00107230
MOV RDX,R13
MOV RCX,RBP
MOV RDI,RAX
SUB RDX,R14
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001379e0
MOV EDI,0xa
CALL 0x00107090
ADD RSP,0x38
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV R12D,0x4
MOV dword ptr [RSP + 0x4],0x4
JMP 0x001255b2
MOV ESI,EAX
JMP 0x001254d4
MOV RDI,RBP
CALL qword ptr [0x00159e20]
MOV R13D,dword ptr [RSP + 0x4]
MOV ECX,EAX
LEA R9,[R12 + R13*0x1]
CMP RBX,R9
JA 0x001252b8
MOVZX ECX,AX
SUB EAX,0x2
XOR R12D,R12D
MOV dword ptr [RSP + 0x10],ECX
MOV word ptr [RSP + 0x24],AX
JMP 0x00125146
(translation_unit "undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00125060(long param_1,undefined8 param_2,uint param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,uint param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (expression_statement "pcVar19 = *(char **)(param_1 + 0x20);" (assignment_expression "pcVar19 = *(char **)(param_1 + 0x20)" identifier = (pointer_expression "*(char **)(param_1 + 0x20)" * (cast_expression "(char **)(param_1 + 0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);" (assignment_expression "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30)" identifier = (binary_expression "pcVar19 + *(long *)(param_1 + 0x30)" identifier + (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) )))))) ;) (expression_statement "FUN_00122790(param_2);" (call_expression "FUN_00122790(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_00110740(*(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) ))) ;) (do_statement "do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  }" { (if_statement "if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(pcVar15 <= pcVar19)" ( (binary_expression "pcVar15 <= pcVar19" identifier <= identifier) )) (compound_statement "{\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00125613:\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 "pcVar8 = pcVar19 + 4;" (assignment_expression "pcVar8 = pcVar19 + 4" identifier = (binary_expression "pcVar19 + 4" identifier + number_literal)) ;) (if_statement "if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (compound_statement "{\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" { (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" statement_identifier : (expression_statement "uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar19,lVar16)" identifier = (call_expression "(*DAT_00159e20)(pcVar19,lVar16)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar19,lVar16)" ( identifier , identifier )))) ;)) (if_statement "if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }" { (expression_statement "pcVar19 = pcVar19 + 0xc;" (assignment_expression "pcVar19 = pcVar19 + 0xc" identifier = (binary_expression "pcVar19 + 0xc" identifier + number_literal)) ;) (if_statement "if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "(pcVar19 < pcVar15)" ( (binary_expression "pcVar19 < pcVar15" identifier < identifier) )) (compound_statement "{\n          lVar16 = 8;\n        }" { (expression_statement "lVar16 = 8;" (assignment_expression "lVar16 = 8" identifier = number_literal) ;) }) (else_clause "else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" else (if_statement "if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U))" ( (binary_expression "(pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) || (parenthesized_expression "(lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" ( (comma_expression "lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar8" identifier = (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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))) ))) )) (compound_statement "{\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" { (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" identifier = identifier) ;) (goto_statement "goto LAB_001250d0;" goto statement_identifier ;) })))) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) (expression_statement "uVar9 = (*DAT_00159e20)(pcVar8,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar8,lVar16)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,lVar16)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,lVar16)" ( identifier , identifier )))) ;) (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" identifier = identifier) ;) }) (else_clause "else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" else (compound_statement "{\n        uVar5 = 4;\n        local_64 = 4;\n      }" { (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 = uVar18 + uVar9;" (assignment_expression "uVar7 = uVar18 + uVar9" identifier = (binary_expression "uVar18 + uVar9" identifier + identifier)) ;) (if_statement "if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;" if (parenthesized_expression "(!CARRY8(uVar18,uVar9))" ( (unary_expression "!CARRY8(uVar18,uVar9)" ! (call_expression "CARRY8(uVar18,uVar9)" identifier (argument_list "(uVar18,uVar9)" ( identifier , identifier )))) )) (goto_statement "goto LAB_001250e2;" goto statement_identifier ;)) (labeled_statement "LAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);" statement_identifier : (expression_statement "uVar12 = FUN_0010ebb0("x",uVar9,0);" (assignment_expression "uVar12 = FUN_0010ebb0("x",uVar9,0)" identifier = (call_expression "FUN_0010ebb0("x",uVar9,0)" identifier (argument_list "("x",uVar9,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(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 "uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar14 = 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(uVar14,uVar11,uVar18 - uVar5,uVar12);" (call_expression "warn(uVar14,uVar11,uVar18 - uVar5,uVar12)" identifier (argument_list "(uVar14,uVar11,uVar18 - uVar5,uVar12)" ( identifier , identifier , (binary_expression "uVar18 - uVar5" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00125613;" goto statement_identifier ;) })) (expression_statement "lVar16 = (long)pcVar15 - (long)pcVar19;" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar19" identifier = (binary_expression "(long)pcVar15 - (long)pcVar19" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((int)lVar16 - 1U < 8) goto LAB_0012523e;" if (parenthesized_expression "((int)lVar16 - 1U < 8)" ( (binary_expression "(int)lVar16 - 1U < 8" (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_0012523e;" goto statement_identifier ;)) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001250d0:\n    uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" statement_identifier : (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" 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_001255ca;" goto statement_identifier ;))) (expression_statement "pcVar19 = pcVar8 + uVar9;" (assignment_expression "pcVar19 = pcVar8 + uVar9" identifier = (binary_expression "pcVar8 + uVar9" identifier + identifier)) ;) (expression_statement "pcVar17 = pcVar8 + 2;" (assignment_expression "pcVar17 = pcVar8 + 2" identifier = (binary_expression "pcVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar1 = (int)pcVar15;" (assignment_expression "iVar1 = (int)pcVar15" identifier = (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" identifier = identifier) ;) (if_statement "if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" if (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) (compound_statement "{\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }" { (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8,2);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8,2)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,2)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" if (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) (compound_statement "{\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" { (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (expression_statement "uVar5 = iVar1 - (int)pcVar17;" (assignment_expression "uVar5 = iVar1 - (int)pcVar17" identifier = (binary_expression "iVar1 - (int)pcVar17" identifier - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 - 1 < 8) goto LAB_001252cb;" if (parenthesized_expression "(uVar5 - 1 < 8)" ( (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) (goto_statement "goto LAB_00125146;" goto statement_identifier ;) })) (labeled_statement "LAB_001252b8:\n      uVar2 = (uint)uVar3;" statement_identifier : (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (labeled_statement "LAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" statement_identifier : (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,uVar5)" identifier = (call_expression "(*DAT_00159e20)(pcVar17,uVar5)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar17,uVar5)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" else (compound_statement "{\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" { (if_statement "if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" if (parenthesized_expression "((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8))" ( (binary_expression "(pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)" (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) && (parenthesized_expression "((iVar1 - (int)pcVar8) - 1U < 8)" ( (binary_expression "(iVar1 - (int)pcVar8) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar8) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar8)" ( (binary_expression "iVar1 - (int)pcVar8" identifier - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }" { (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8)" identifier = (call_expression "(*DAT_00159e20)(pcVar8)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252b8;" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (goto_statement "goto LAB_001252b8;" goto statement_identifier ;)) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" else (compound_statement "{\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0xfffe;" (assignment_expression "uVar4 = 0xfffe" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252cb;" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00125146:\n      lVar16 = 0;" statement_identifier : (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" identifier = number_literal) ;)) }))) (if_statement "if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" if (parenthesized_expression "(DAT_00159bd4 - 1U < 0xfffffffe)" ( (binary_expression "DAT_00159bd4 - 1U < 0xfffffffe" (binary_expression "DAT_00159bd4 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" { (expression_statement "plVar10 = (long *)(DAT_00159bc8 + 0x10);" (assignment_expression "plVar10 = (long *)(DAT_00159bc8 + 0x10)" identifier = (cast_expression "(long *)(DAT_00159bc8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00159bc8 + 0x10)" ( (binary_expression "DAT_00159bc8 + 0x10" identifier + number_literal) )))) ;) (do_statement "do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);" do (compound_statement "{\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      }" { (if_statement "if (lVar16 == *plVar10) goto LAB_00125158;" if (parenthesized_expression "(lVar16 == *plVar10)" ( (binary_expression "lVar16 == *plVar10" identifier == (pointer_expression "*plVar10" * identifier)) )) (goto_statement "goto LAB_00125158;" goto statement_identifier ;)) (expression_statement "plVar10 = plVar10 + 0xd;" (assignment_expression "plVar10 = plVar10 + 0xd" identifier = (binary_expression "plVar10 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10)" ( (binary_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10" (cast_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" ( (binary_expression "DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68" (binary_expression "DAT_00159bc8 + 0x78" identifier + number_literal) + (binary_expression "(ulong)(DAT_00159bd4 - 1U) * 0x68" (call_expression "(ulong)(DAT_00159bd4 - 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00159bd4 - 1U)" ( (binary_expression "DAT_00159bd4 - 1U" identifier - number_literal) ))) * number_literal)) ))) != identifier) )) ;) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(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,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);" (assignment_expression "uVar12 = 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(uVar12,lVar16,uVar11);" (call_expression "warn(uVar12,lVar16,uVar11)" identifier (argument_list "(uVar12,lVar16,uVar11)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00125158:\n    pcVar17 = pcVar8 + local_64;" statement_identifier : (expression_statement "pcVar17 = pcVar8 + local_64;" (assignment_expression "pcVar17 = pcVar8 + local_64" identifier = (binary_expression "pcVar8 + local_64" identifier + identifier)) ;)) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" identifier = identifier) ;) (if_statement "if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" if (parenthesized_expression "((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))))" ( (binary_expression "(pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) || (parenthesized_expression "((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" ( (parenthesized_expression "(uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))" ( (comma_expression "uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (assignment_expression "uVar11 = 0" identifier = number_literal) , (binary_expression "pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (binary_expression "pcVar8 < pcVar15" identifier < identifier) && (parenthesized_expression "(uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" ( (comma_expression "uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8" (assignment_expression "uVar5 = iVar1 - (int)pcVar8" identifier = (binary_expression "iVar1 - (int)pcVar8" identifier - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" identifier - number_literal) < number_literal)) )))) )) ))) )) (compound_statement "{\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" { (expression_statement "uVar11 = (*DAT_00159e20)(pcVar8,uVar5);" (assignment_expression "uVar11 = (*DAT_00159e20)(pcVar8,uVar5)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,uVar5)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,uVar5)" ( identifier , 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,uVar9);" (call_expression "printf(pcVar8,uVar9)" identifier (argument_list "(pcVar8,uVar9)" ( 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,uVar2);" (call_expression "printf(pcVar8,uVar2)" identifier (argument_list "(pcVar8,uVar2)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info section:     0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,lVar16);" (call_expression "printf(pcVar8,lVar16)" identifier (argument_list "(pcVar8,lVar16)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier (argument_list "(0,"  Size of area in .debug_info section: %ld\n",5)" ( number_literal , (string_literal ""  Size of area in .debug_info section: %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,uVar11);" (call_expression "printf(pcVar8,uVar11)" identifier (argument_list "(pcVar8,uVar11)" ( identifier , identifier ))) ;) (if_statement "if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }" { (expression_statement "pcVar8 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar8 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = "\n    Offset\tName\n";\n      }" { (expression_statement "pcVar8 = "\n    Offset\tName\n";" (assignment_expression "pcVar8 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content 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 ))) ;) (do_statement "do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);" do (compound_statement "{\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      }" { (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" if (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) (compound_statement "{\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" { (if_statement "if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }" if (parenthesized_expression "((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8))" ( (binary_expression "(pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)" (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) && (parenthesized_expression "((iVar1 - (int)pcVar17) - 1U < 8)" ( (binary_expression "(iVar1 - (int)pcVar17) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar17) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar17)" ( (binary_expression "iVar1 - (int)pcVar17" identifier - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n            (*DAT_00159e20)();\n          }" { (expression_statement "(*DAT_00159e20)();" (call_expression "(*DAT_00159e20)()" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,local_64);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,local_64)" identifier = (call_expression "(*DAT_00159e20)(pcVar17,local_64)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar17,local_64)" ( identifier , identifier )))) ;) (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = (long)pcVar15 - (long)pcVar8;" (assignment_expression "uVar9 = (long)pcVar15 - (long)pcVar8" identifier = (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }" { (expression_statement "uVar18 = uVar9 - 1;" (assignment_expression "uVar18 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);" (call_expression "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" identifier (argument_list "("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" else (compound_statement "{\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" { (expression_statement "uVar18 = uVar9 - 2;" (assignment_expression "uVar18 = uVar9 - 2" identifier = (binary_expression "uVar9 - 2" identifier - number_literal)) ;) (expression_statement "pcVar17 = pcVar8 + 1;" (assignment_expression "pcVar17 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" if (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) (compound_statement "{\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }" { (expression_statement "uVar9 = (ulong)param_3;" (assignment_expression "uVar9 = (ulong)param_3" identifier = (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" statement_identifier : (expression_statement "iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" (assignment_expression "iVar6 = (*DAT_00159e20)(pcVar8,uVar9)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,uVar9)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,uVar9)" ( identifier , identifier )))) ;)) (expression_statement "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);" (assignment_expression "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" identifier = (call_expression "dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" identifier (argument_list "(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" ( number_literal , (subscript_expression "(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7]" (parenthesized_expression "(&PTR_s_no_info_001533c0)" ( (pointer_expression "&PTR_s_no_info_001533c0" & identifier) )) [ (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c" (call_expression "(uint)(iVar6 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 << 0x18)" ( (binary_expression "iVar6 << 0x18" identifier << number_literal) ))) >> number_literal) & number_literal) ]) , number_literal )))) ;) (if_statement "if (-1 < iVar6 << 0x18) goto LAB_0012547a;" if (parenthesized_expression "(-1 < iVar6 << 0x18)" ( (binary_expression "-1 < iVar6 << 0x18" number_literal < (binary_expression "iVar6 << 0x18" identifier << number_literal)) )) (goto_statement "goto LAB_0012547a;" goto statement_identifier ;)) (expression_statement "uVar12 = dcgettext(0,"s",5);" (assignment_expression "uVar12 = dcgettext(0,"s",5)" identifier = (call_expression "dcgettext(0,"s",5)" identifier (argument_list "(0,"s",5)" ( number_literal , (string_literal ""s"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" else (compound_statement "{\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" { (if_statement "if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" if (parenthesized_expression "((int)uVar9 - 1U < 8)" ( (binary_expression "(int)uVar9 - 1U < 8" (binary_expression "(int)uVar9 - 1U" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" { (expression_statement "uVar9 = uVar9 & 0xffffffff;" (assignment_expression "uVar9 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (goto_statement "goto LAB_001254d4;" goto statement_identifier ;) })) (expression_statement "uVar11 = dcgettext(0,"no info",5);" (assignment_expression "uVar11 = dcgettext(0,"no info",5)" identifier = (call_expression "dcgettext(0,"no info",5)" identifier (argument_list "(0,"no info",5)" ( number_literal , (string_literal ""no info"" " string_content ") , number_literal )))) ;) (labeled_statement "LAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"g",5);" (assignment_expression "uVar12 = dcgettext(0,"g",5)" identifier = (call_expression "dcgettext(0,"g",5)" identifier (argument_list "(0,"g",5)" ( number_literal , (string_literal ""g"" " string_content ") , number_literal )))) ;)) }))) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) , identifier ))) ;) (expression_statement "pcVar8 = pcVar17;" (assignment_expression "pcVar8 = pcVar17" identifier = identifier) ;) }))) (expression_statement "sVar13 = strnlen(pcVar8,uVar18);" (assignment_expression "sVar13 = strnlen(pcVar8,uVar18)" identifier = (call_expression "strnlen(pcVar8,uVar18)" identifier (argument_list "(pcVar8,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar17 = pcVar8 + sVar13 + 1;" (assignment_expression "pcVar17 = pcVar8 + sVar13 + 1" identifier = (binary_expression "pcVar8 + sVar13 + 1" (binary_expression "pcVar8 + sVar13" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) ;) }) (else_clause "else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" else (if_statement "if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" if (parenthesized_expression "(DAT_00157488 == 0)" ( (binary_expression "DAT_00157488 == 0" identifier == number_literal) )) (compound_statement "{\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" { (expression_statement "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (call_expression "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier (argument_list "(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" ( number_literal , (string_literal ""Only DWARF 2 and 3 pubnames are currently supported\n"" " string_content escape_sequence ") , number_literal ))) ;) (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00157488 = 1;" (assignment_expression "DAT_00157488 = 1" identifier = number_literal) ;) })))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)\n\n{\n  int iVar1;\n  ushort uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  elf_vma eVar7;\n  dwarf_vma dVar8;\n  dwarf_vma *pdVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  size_t sVar14;\n  elf_vma eVar15;\n  char *message;\n  dwarf_section *section_1;\n  uchar *puVar16;\n  uchar *puVar17;\n  int iVar18;\n  uchar *puVar19;\n  ulong uVar20;\n  uchar *puVar21;\n  uint local_64;\n  ulong local_58;\n  \n  puVar21 = section->start;\n  puVar16 = puVar21 + section->size;\n  load_debug_info(file);\n  introduce((dwarf_section *)section->name,(int)section + 0x18,section_1);\n  do {\n    if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    puVar17 = puVar21 + 4;\n    iVar1 = (int)puVar16;\n    if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }\n    iVar18 = iVar1 - (int)puVar21;\n    if (iVar18 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar3 = 4;\nLAB_001250d0:\n    eVar7 = 0;\n    uVar5 = (long)puVar17 - (long)section->start;\n    uVar20 = uVar5;\nLAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;\n    puVar21 = puVar17 + eVar7;\n    puVar19 = puVar17 + 2;\n    uVar3 = local_64;\n    if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }\nLAB_00125158:\n    puVar19 = puVar17 + local_64;\n    uVar3 = local_64;\n    if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }\n    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar6,eVar7);\n    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar6,local_58);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar6,dVar8);\n    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar6,eVar15);\n    if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}\n\n" (function_definition "int display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)\n\n{\n  int iVar1;\n  ushort uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  elf_vma eVar7;\n  dwarf_vma dVar8;\n  dwarf_vma *pdVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  size_t sVar14;\n  elf_vma eVar15;\n  char *message;\n  dwarf_section *section_1;\n  uchar *puVar16;\n  uchar *puVar17;\n  int iVar18;\n  uchar *puVar19;\n  ulong uVar20;\n  uchar *puVar21;\n  uint local_64;\n  ulong local_58;\n  \n  puVar21 = section->start;\n  puVar16 = puVar21 + section->size;\n  load_debug_info(file);\n  introduce((dwarf_section *)section->name,(int)section + 0x18,section_1);\n  do {\n    if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    puVar17 = puVar21 + 4;\n    iVar1 = (int)puVar16;\n    if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }\n    iVar18 = iVar1 - (int)puVar21;\n    if (iVar18 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar3 = 4;\nLAB_001250d0:\n    eVar7 = 0;\n    uVar5 = (long)puVar17 - (long)section->start;\n    uVar20 = uVar5;\nLAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;\n    puVar21 = puVar17 + eVar7;\n    puVar19 = puVar17 + 2;\n    uVar3 = local_64;\n    if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }\nLAB_00125158:\n    puVar19 = puVar17 + local_64;\n    uVar3 = local_64;\n    if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }\n    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar6,eVar7);\n    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar6,local_58);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar6,dVar8);\n    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar6,eVar15);\n    if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}" primitive_type (function_declarator "display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)" identifier (parameter_list "(dwarf_section *section,void *file,int is_gnu)" ( (parameter_declaration "dwarf_section *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) , (parameter_declaration "int is_gnu" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  ushort uVar2;\n  uint uVar3;\n  uint uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  elf_vma eVar7;\n  dwarf_vma dVar8;\n  dwarf_vma *pdVar9;\n  char *pcVar10;\n  long lVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  size_t sVar14;\n  elf_vma eVar15;\n  char *message;\n  dwarf_section *section_1;\n  uchar *puVar16;\n  uchar *puVar17;\n  int iVar18;\n  uchar *puVar19;\n  ulong uVar20;\n  uchar *puVar21;\n  uint local_64;\n  ulong local_58;\n  \n  puVar21 = section->start;\n  puVar16 = puVar21 + section->size;\n  load_debug_info(file);\n  introduce((dwarf_section *)section->name,(int)section + 0x18,section_1);\n  do {\n    if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    puVar17 = puVar21 + 4;\n    iVar1 = (int)puVar16;\n    if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }\n    iVar18 = iVar1 - (int)puVar21;\n    if (iVar18 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar3 = 4;\nLAB_001250d0:\n    eVar7 = 0;\n    uVar5 = (long)puVar17 - (long)section->start;\n    uVar20 = uVar5;\nLAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;\n    puVar21 = puVar17 + eVar7;\n    puVar19 = puVar17 + 2;\n    uVar3 = local_64;\n    if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }\nLAB_00125158:\n    puVar19 = puVar17 + local_64;\n    uVar3 = local_64;\n    if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }\n    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar6,eVar7);\n    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar6,local_58);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar6,dVar8);\n    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar6,eVar15);\n    if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "elf_vma eVar7;" type_identifier identifier ;) (declaration "dwarf_vma dVar8;" type_identifier identifier ;) (declaration "dwarf_vma *pdVar9;" type_identifier (pointer_declarator "*pdVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "elf_vma eVar15;" type_identifier identifier ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "dwarf_section *section_1;" type_identifier (pointer_declarator "*section_1" * identifier) ;) (declaration "uchar *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uchar *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "uchar *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "ulong local_58;" type_identifier identifier ;) (expression_statement "puVar21 = section->start;" (assignment_expression "puVar21 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "puVar16 = puVar21 + section->size;" (assignment_expression "puVar16 = puVar21 + section->size" identifier = (binary_expression "puVar21 + section->size" identifier + (field_expression "section->size" identifier -> field_identifier))) ;) (expression_statement "load_debug_info(file);" (call_expression "load_debug_info(file)" identifier (argument_list "(file)" ( identifier ))) ;) (expression_statement "introduce((dwarf_section *)section->name,(int)section + 0x18,section_1);" (call_expression "introduce((dwarf_section *)section->name,(int)section + 0x18,section_1)" identifier (argument_list "((dwarf_section *)section->name,(int)section + 0x18,section_1)" ( (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 ))) ;) (do_statement "do {\n    if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    puVar17 = puVar21 + 4;\n    iVar1 = (int)puVar16;\n    if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }\n    iVar18 = iVar1 - (int)puVar21;\n    if (iVar18 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar3 = 4;\nLAB_001250d0:\n    eVar7 = 0;\n    uVar5 = (long)puVar17 - (long)section->start;\n    uVar20 = uVar5;\nLAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;\n    puVar21 = puVar17 + eVar7;\n    puVar19 = puVar17 + 2;\n    uVar3 = local_64;\n    if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }\nLAB_00125158:\n    puVar19 = puVar17 + local_64;\n    uVar3 = local_64;\n    if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }\n    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar6,eVar7);\n    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar6,local_58);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar6,dVar8);\n    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar6,eVar15);\n    if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    puVar17 = puVar21 + 4;\n    iVar1 = (int)puVar16;\n    if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }\n    iVar18 = iVar1 - (int)puVar21;\n    if (iVar18 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar3 = 4;\nLAB_001250d0:\n    eVar7 = 0;\n    uVar5 = (long)puVar17 - (long)section->start;\n    uVar20 = uVar5;\nLAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;\n    puVar21 = puVar17 + eVar7;\n    puVar19 = puVar17 + 2;\n    uVar3 = local_64;\n    if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }\nLAB_00125158:\n    puVar19 = puVar17 + local_64;\n    uVar3 = local_64;\n    if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }\n    pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar6,eVar7);\n    pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar6,local_58);\n    pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar6,dVar8);\n    pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar6,eVar15);\n    if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  }" { (if_statement "if (puVar16 <= puVar21) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(puVar16 <= puVar21)" ( (binary_expression "puVar16 <= puVar21" identifier <= identifier) )) (compound_statement "{\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00125613:\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 "puVar17 = puVar21 + 4;" (assignment_expression "puVar17 = puVar21 + 4" identifier = (binary_expression "puVar21 + 4" identifier + number_literal)) ;) (expression_statement "iVar1 = (int)puVar16;" (assignment_expression "iVar1 = (int)puVar16" identifier = (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar17 < puVar16) {\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (compound_statement "{\n      iVar18 = 4;\nLAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);\n      if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }\n      uVar20 = (long)puVar17 - (long)section->start;\n      uVar5 = uVar20 + eVar7;\n      if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;\nLAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);\n      pcVar6 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar6,uVar20 - uVar3,pcVar10);\n      goto LAB_00125613;\n    }" { (expression_statement "iVar18 = 4;" (assignment_expression "iVar18 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0012523e:\n      eVar7 = (*byte_get)(puVar21,iVar18);" statement_identifier : (expression_statement "eVar7 = (*byte_get)(puVar21,iVar18);" (assignment_expression "eVar7 = (*byte_get)(puVar21,iVar18)" identifier = (call_expression "(*byte_get)(puVar21,iVar18)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar21,iVar18)" ( identifier , identifier )))) ;)) (if_statement "if (eVar7 == 0xffffffff) {\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }\n      else {\n        uVar3 = 4;\n        local_64 = 4;\n      }" if (parenthesized_expression "(eVar7 == 0xffffffff)" ( (binary_expression "eVar7 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar21 = puVar21 + 0xc;\n        if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }\n        uVar3 = 0xc;\n        eVar7 = (*byte_get)(puVar17,iVar18);\n        local_64 = 8;\n        puVar17 = puVar21;\n      }" { (expression_statement "puVar21 = puVar21 + 0xc;" (assignment_expression "puVar21 = puVar21 + 0xc" identifier = (binary_expression "puVar21 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar21 < puVar16) {\n          iVar18 = 8;\n        }\n        else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "(puVar21 < puVar16)" ( (binary_expression "puVar21 < puVar16" identifier < identifier) )) (compound_statement "{\n          iVar18 = 8;\n        }" { (expression_statement "iVar18 = 8;" (assignment_expression "iVar18 = 8" identifier = number_literal) ;) }) (else_clause "else if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }" else (if_statement "if ((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)) {\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "((puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U))" ( (binary_expression "(puVar16 <= puVar17) || (iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)" (parenthesized_expression "(puVar16 <= puVar17)" ( (binary_expression "puVar16 <= puVar17" identifier <= identifier) )) || (parenthesized_expression "(iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U)" ( (comma_expression "iVar18 = iVar1 - (int)puVar17, 7 < iVar18 - 1U" (assignment_expression "iVar18 = iVar1 - (int)puVar17" identifier = (binary_expression "iVar1 - (int)puVar17" identifier - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar18 - 1U" number_literal < (binary_expression "iVar18 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n          local_64 = 8;\n          uVar3 = 0xc;\n          puVar17 = puVar21;\n          goto LAB_001250d0;\n        }" { (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "uVar3 = 0xc;" (assignment_expression "uVar3 = 0xc" identifier = number_literal) ;) (expression_statement "puVar17 = puVar21;" (assignment_expression "puVar17 = puVar21" identifier = identifier) ;) (goto_statement "goto LAB_001250d0;" goto statement_identifier ;) })))) (expression_statement "uVar3 = 0xc;" (assignment_expression "uVar3 = 0xc" identifier = number_literal) ;) (expression_statement "eVar7 = (*byte_get)(puVar17,iVar18);" (assignment_expression "eVar7 = (*byte_get)(puVar17,iVar18)" identifier = (call_expression "(*byte_get)(puVar17,iVar18)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,iVar18)" ( identifier , identifier )))) ;) (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "puVar17 = puVar21;" (assignment_expression "puVar17 = puVar21" identifier = identifier) ;) }) (else_clause "else {\n        uVar3 = 4;\n        local_64 = 4;\n      }" else (compound_statement "{\n        uVar3 = 4;\n        local_64 = 4;\n      }" { (expression_statement "uVar3 = 4;" (assignment_expression "uVar3 = 4" identifier = number_literal) ;) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar20 = (long)puVar17 - (long)section->start;" (assignment_expression "uVar20 = (long)puVar17 - (long)section->start" identifier = (binary_expression "(long)puVar17 - (long)section->start" (cast_expression "(long)puVar17" ( (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 "uVar5 = uVar20 + eVar7;" (assignment_expression "uVar5 = uVar20 + eVar7" identifier = (binary_expression "uVar20 + eVar7" identifier + identifier)) ;) (if_statement "if (!CARRY8(uVar20,eVar7)) goto LAB_001250e2;" if (parenthesized_expression "(!CARRY8(uVar20,eVar7))" ( (unary_expression "!CARRY8(uVar20,eVar7)" ! (call_expression "CARRY8(uVar20,eVar7)" identifier (argument_list "(uVar20,eVar7)" ( identifier , identifier )))) )) (goto_statement "goto LAB_001250e2;" goto statement_identifier ;)) (labeled_statement "LAB_001255ca:\n      pcVar10 = dwarf_vmatoa_1("x",eVar7,0);" statement_identifier : (expression_statement "pcVar10 = dwarf_vmatoa_1("x",eVar7,0);" (assignment_expression "pcVar10 = dwarf_vmatoa_1("x",eVar7,0)" identifier = (call_expression "dwarf_vmatoa_1("x",eVar7,0)" identifier (argument_list "("x",eVar7,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "pcVar6 = section->name;" (assignment_expression "pcVar6 = 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,pcVar6,uVar20 - uVar3,pcVar10);" (call_expression "warn(message,pcVar6,uVar20 - uVar3,pcVar10)" identifier (argument_list "(message,pcVar6,uVar20 - uVar3,pcVar10)" ( identifier , identifier , (binary_expression "uVar20 - uVar3" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00125613;" goto statement_identifier ;) })) (expression_statement "iVar18 = iVar1 - (int)puVar21;" (assignment_expression "iVar18 = iVar1 - (int)puVar21" identifier = (binary_expression "iVar1 - (int)puVar21" identifier - (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar18 - 1U < 8) goto LAB_0012523e;" if (parenthesized_expression "(iVar18 - 1U < 8)" ( (binary_expression "iVar18 - 1U < 8" (binary_expression "iVar18 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0012523e;" goto statement_identifier ;)) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) (expression_statement "uVar3 = 4;" (assignment_expression "uVar3 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001250d0:\n    eVar7 = 0;" statement_identifier : (expression_statement "eVar7 = 0;" (assignment_expression "eVar7 = 0" identifier = number_literal) ;)) (expression_statement "uVar5 = (long)puVar17 - (long)section->start;" (assignment_expression "uVar5 = (long)puVar17 - (long)section->start" identifier = (binary_expression "(long)puVar17 - (long)section->start" (cast_expression "(long)puVar17" ( (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 "uVar20 = uVar5;" (assignment_expression "uVar20 = uVar5" identifier = identifier) ;) (labeled_statement "LAB_001250e2:\n    if (section->size < uVar5) goto LAB_001255ca;" statement_identifier : (if_statement "if (section->size < uVar5) goto LAB_001255ca;" if (parenthesized_expression "(section->size < uVar5)" ( (binary_expression "section->size < uVar5" (field_expression "section->size" identifier -> field_identifier) < identifier) )) (goto_statement "goto LAB_001255ca;" goto statement_identifier ;))) (expression_statement "puVar21 = puVar17 + eVar7;" (assignment_expression "puVar21 = puVar17 + eVar7" identifier = (binary_expression "puVar17 + eVar7" identifier + identifier)) ;) (expression_statement "puVar19 = puVar17 + 2;" (assignment_expression "puVar19 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = local_64;" (assignment_expression "uVar3 = local_64" identifier = identifier) ;) (if_statement "if (puVar19 < puVar16) {\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }\n    else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }" if (parenthesized_expression "(puVar19 < puVar16)" ( (binary_expression "puVar19 < puVar16" identifier < identifier) )) (compound_statement "{\n      eVar15 = (*byte_get)(puVar17,2);\n      uVar4 = (uint)eVar15;\n      puVar17 = puVar19 + local_64;\n      if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;\n      uVar2 = (short)uVar4 - 2;\nLAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);\n    }" { (expression_statement "eVar15 = (*byte_get)(puVar17,2);" (assignment_expression "eVar15 = (*byte_get)(puVar17,2)" identifier = (call_expression "(*byte_get)(puVar17,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,2)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = (uint)eVar15;" (assignment_expression "uVar4 = (uint)eVar15" identifier = (cast_expression "(uint)eVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar19 + local_64;" (assignment_expression "puVar17 = puVar19 + local_64" identifier = (binary_expression "puVar19 + local_64" identifier + identifier)) ;) (if_statement "if (puVar16 <= puVar17) {\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" if (parenthesized_expression "(puVar16 <= puVar17)" ( (binary_expression "puVar16 <= puVar17" identifier <= identifier) )) (compound_statement "{\n        uVar2 = (short)eVar15 - 2;\n        uVar3 = iVar1 - (int)puVar19;\n        local_58 = eVar15 & 0xffff;\n        if (uVar3 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" { (expression_statement "uVar2 = (short)eVar15 - 2;" (assignment_expression "uVar2 = (short)eVar15 - 2" identifier = (binary_expression "(short)eVar15 - 2" (cast_expression "(short)eVar15" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - number_literal)) ;) (expression_statement "uVar3 = iVar1 - (int)puVar19;" (assignment_expression "uVar3 = iVar1 - (int)puVar19" identifier = (binary_expression "iVar1 - (int)puVar19" identifier - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_58 = eVar15 & 0xffff;" (assignment_expression "local_58 = eVar15 & 0xffff" identifier = (binary_expression "eVar15 & 0xffff" identifier & number_literal)) ;) (if_statement "if (uVar3 - 1 < 8) goto LAB_001252cb;" if (parenthesized_expression "(uVar3 - 1 < 8)" ( (binary_expression "uVar3 - 1 < 8" (binary_expression "uVar3 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) (goto_statement "goto LAB_00125146;" goto statement_identifier ;) })) (labeled_statement "LAB_001252b8:\n      local_58 = (ulong)uVar4 & 0xffffffff0000ffff;" statement_identifier : (expression_statement "local_58 = (ulong)uVar4 & 0xffffffff0000ffff;" (assignment_expression "local_58 = (ulong)uVar4 & 0xffffffff0000ffff" identifier = (binary_expression "(ulong)uVar4 & 0xffffffff0000ffff" (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal)) ;)) (expression_statement "uVar2 = (short)uVar4 - 2;" (assignment_expression "uVar2 = (short)uVar4 - 2" identifier = (binary_expression "(short)uVar4 - 2" (cast_expression "(short)uVar4" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - number_literal)) ;) (labeled_statement "LAB_001252cb:\n      dVar8 = (*byte_get)(puVar19,uVar3);" statement_identifier : (expression_statement "dVar8 = (*byte_get)(puVar19,uVar3);" (assignment_expression "dVar8 = (*byte_get)(puVar19,uVar3)" identifier = (call_expression "(*byte_get)(puVar19,uVar3)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19,uVar3)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }" else (compound_statement "{\n      if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }\nLAB_00125146:\n      dVar8 = 0;\n    }" { (if_statement "if ((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)) {\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }\n      else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }" if (parenthesized_expression "((puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8))" ( (binary_expression "(puVar17 < puVar16) && (iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)" (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) && (parenthesized_expression "(iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8)" ( (comma_expression "iVar18 = iVar1 - (int)puVar17, iVar18 - 1U < 8" (assignment_expression "iVar18 = iVar1 - (int)puVar17" identifier = (binary_expression "iVar1 - (int)puVar17" identifier - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar18 - 1U < 8" (binary_expression "iVar18 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n        eVar15 = (*byte_get)(puVar17,iVar18);\n        uVar4 = (uint)eVar15;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252b8;\n        uVar2 = (short)eVar15 - 2;\n        local_58 = eVar15 & 0xffff;\n      }" { (expression_statement "eVar15 = (*byte_get)(puVar17,iVar18);" (assignment_expression "eVar15 = (*byte_get)(puVar17,iVar18)" identifier = (call_expression "(*byte_get)(puVar17,iVar18)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,iVar18)" ( identifier , identifier )))) ;) (expression_statement "uVar4 = (uint)eVar15;" (assignment_expression "uVar4 = (uint)eVar15" identifier = (cast_expression "(uint)eVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar17 = puVar19 + local_64;" (assignment_expression "puVar17 = puVar19 + local_64" identifier = (binary_expression "puVar19 + local_64" identifier + identifier)) ;) (if_statement "if (puVar17 < puVar16) goto LAB_001252b8;" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (goto_statement "goto LAB_001252b8;" goto statement_identifier ;)) (expression_statement "uVar2 = (short)eVar15 - 2;" (assignment_expression "uVar2 = (short)eVar15 - 2" identifier = (binary_expression "(short)eVar15 - 2" (cast_expression "(short)eVar15" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - number_literal)) ;) (expression_statement "local_58 = eVar15 & 0xffff;" (assignment_expression "local_58 = eVar15 & 0xffff" identifier = (binary_expression "eVar15 & 0xffff" identifier & number_literal)) ;) }) (else_clause "else {\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }" else (compound_statement "{\n        local_58 = 0;\n        uVar2 = 0xfffe;\n        puVar17 = puVar19 + local_64;\n        if (puVar17 < puVar16) goto LAB_001252cb;\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0xfffe;" (assignment_expression "uVar2 = 0xfffe" identifier = number_literal) ;) (expression_statement "puVar17 = puVar19 + local_64;" (assignment_expression "puVar17 = puVar19 + local_64" identifier = (binary_expression "puVar19 + local_64" identifier + identifier)) ;) (if_statement "if (puVar17 < puVar16) goto LAB_001252cb;" if (parenthesized_expression "(puVar17 < puVar16)" ( (binary_expression "puVar17 < puVar16" identifier < identifier) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00125146:\n      dVar8 = 0;" statement_identifier : (expression_statement "dVar8 = 0;" (assignment_expression "dVar8 = 0" identifier = number_literal) ;)) }))) (if_statement "if (num_debug_info_entries - 1 < 0xfffffffe) {\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }" if (parenthesized_expression "(num_debug_info_entries - 1 < 0xfffffffe)" ( (binary_expression "num_debug_info_entries - 1 < 0xfffffffe" (binary_expression "num_debug_info_entries - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n      pdVar9 = &debug_information->cu_offset;\n      do {\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);\n      pcVar6 = section->name;\n      pcVar10 = (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(pcVar10,dVar8,pcVar6);\n    }" { (expression_statement "pdVar9 = &debug_information->cu_offset;" (assignment_expression "pdVar9 = &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 (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      } while (&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9);" do (compound_statement "{\n        if (dVar8 == *pdVar9) goto LAB_00125158;\n        pdVar9 = pdVar9 + 0xd;\n      }" { (if_statement "if (dVar8 == *pdVar9) goto LAB_00125158;" if (parenthesized_expression "(dVar8 == *pdVar9)" ( (binary_expression "dVar8 == *pdVar9" identifier == (pointer_expression "*pdVar9" * identifier)) )) (goto_statement "goto LAB_00125158;" goto statement_identifier ;)) (expression_statement "pdVar9 = pdVar9 + 0xd;" (assignment_expression "pdVar9 = pdVar9 + 0xd" identifier = (binary_expression "pdVar9 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "(&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9)" ( (binary_expression "&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset != pdVar9" (pointer_expression "&debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset" & (field_expression "debug_information[(ulong)(num_debug_info_entries - 1) + 1].cu_offset" (subscript_expression "debug_information[(ulong)(num_debug_info_entries - 1) + 1]" identifier [ (binary_expression "(ulong)(num_debug_info_entries - 1) + 1" (call_expression "(ulong)(num_debug_info_entries - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(num_debug_info_entries - 1)" ( (binary_expression "num_debug_info_entries - 1" identifier - number_literal) ))) + number_literal) ]) . field_identifier)) != identifier) )) ;) (expression_statement "pcVar6 = section->name;" (assignment_expression "pcVar6 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = (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 "pcVar10 = (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(pcVar10,dVar8,pcVar6);" (call_expression "warn(pcVar10,dVar8,pcVar6)" identifier (argument_list "(pcVar10,dVar8,pcVar6)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00125158:\n    puVar19 = puVar17 + local_64;" statement_identifier : (expression_statement "puVar19 = puVar17 + local_64;" (assignment_expression "puVar19 = puVar17 + local_64" identifier = (binary_expression "puVar17 + local_64" identifier + identifier)) ;)) (expression_statement "uVar3 = local_64;" (assignment_expression "uVar3 = local_64" identifier = identifier) ;) (if_statement "if ((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))) {\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }" if (parenthesized_expression "((puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8))))" ( (binary_expression "(puVar19 < puVar16) ||\n       ((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))" (parenthesized_expression "(puVar19 < puVar16)" ( (binary_expression "puVar19 < puVar16" identifier < identifier) )) || (parenthesized_expression "((eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)))" ( (parenthesized_expression "(eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8))" ( (comma_expression "eVar15 = 0, puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)" (assignment_expression "eVar15 = 0" identifier = number_literal) , (binary_expression "puVar17 < puVar16 && (uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)" (binary_expression "puVar17 < puVar16" identifier < identifier) && (parenthesized_expression "(uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8)" ( (comma_expression "uVar3 = iVar1 - (int)puVar17, uVar3 - 1 < 8" (assignment_expression "uVar3 = iVar1 - (int)puVar17" identifier = (binary_expression "iVar1 - (int)puVar17" identifier - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "uVar3 - 1 < 8" (binary_expression "uVar3 - 1" identifier - number_literal) < number_literal)) )))) )) ))) )) (compound_statement "{\n      eVar15 = (*byte_get)(puVar17,uVar3);\n    }" { (expression_statement "eVar15 = (*byte_get)(puVar17,uVar3);" (assignment_expression "eVar15 = (*byte_get)(puVar17,uVar3)" identifier = (call_expression "(*byte_get)(puVar17,uVar3)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,uVar3)" ( identifier , identifier )))) ;) })) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Length:                              %ld\n",5);" (assignment_expression "pcVar6 = (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(pcVar6,eVar7);" (call_expression "printf(pcVar6,eVar7)" identifier (argument_list "(pcVar6,eVar7)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Version:                             %d\n",5);" (assignment_expression "pcVar6 = (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(pcVar6,local_58);" (call_expression "printf(pcVar6,local_58)" identifier (argument_list "(pcVar6,local_58)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info section:     0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,dVar8);" (call_expression "printf(pcVar6,dVar8)" identifier (argument_list "(pcVar6,dVar8)" ( identifier , identifier ))) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier (argument_list "(0,"  Size of area in .debug_info section: %ld\n",5)" ( number_literal , (string_literal ""  Size of area in .debug_info section: %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,eVar15);" (call_expression "printf(pcVar6,eVar15)" identifier (argument_list "(pcVar6,eVar15)" ( identifier , identifier ))) ;) (if_statement "if (uVar2 < 2) {\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" if (parenthesized_expression "(uVar2 < 2)" ( (binary_expression "uVar2 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar6 = "\n    Offset  Kind          Name\n";\n      if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }\n      pcVar6 = (char *)dcgettext(0,pcVar6,5);\n      printf(pcVar6);\n      do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);\n    }" { (expression_statement "pcVar6 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar6 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if (is_gnu == 0) {\n        pcVar6 = "\n    Offset\tName\n";\n      }" if (parenthesized_expression "(is_gnu == 0)" ( (binary_expression "is_gnu == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar6 = "\n    Offset\tName\n";\n      }" { (expression_statement "pcVar6 = "\n    Offset\tName\n";" (assignment_expression "pcVar6 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) })) (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (do_statement "do {\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      } while (puVar19 < puVar16);" do (compound_statement "{\n        puVar17 = puVar19 + local_64;\n        if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }\n        eVar7 = (*byte_get)(puVar19,local_64);\n        if (eVar7 == 0) break;\n        lVar11 = (long)puVar16 - (long)puVar17;\n        if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }\n        sVar14 = strnlen((char *)puVar17,uVar20);\n        puVar19 = puVar17 + sVar14 + 1;\n      }" { (expression_statement "puVar17 = puVar19 + local_64;" (assignment_expression "puVar17 = puVar19 + local_64" identifier = (binary_expression "puVar19 + local_64" identifier + identifier)) ;) (if_statement "if (puVar16 <= puVar17) {\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }" if (parenthesized_expression "(puVar16 <= puVar17)" ( (binary_expression "puVar16 <= puVar17" identifier <= identifier) )) (compound_statement "{\n          if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }\n          break;\n        }" { (if_statement "if ((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)) {\n            (*byte_get)(puVar19,iVar1);\n          }" if (parenthesized_expression "((puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8))" ( (binary_expression "(puVar19 < puVar16) && (iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)" (parenthesized_expression "(puVar19 < puVar16)" ( (binary_expression "puVar19 < puVar16" identifier < identifier) )) && (parenthesized_expression "(iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8)" ( (comma_expression "iVar1 = iVar1 - (int)puVar19, iVar1 - 1U < 8" (assignment_expression "iVar1 = iVar1 - (int)puVar19" identifier = (binary_expression "iVar1 - (int)puVar19" identifier - (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "iVar1 - 1U < 8" (binary_expression "iVar1 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n            (*byte_get)(puVar19,iVar1);\n          }" { (expression_statement "(*byte_get)(puVar19,iVar1);" (call_expression "(*byte_get)(puVar19,iVar1)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19,iVar1)" ( identifier , identifier ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "eVar7 = (*byte_get)(puVar19,local_64);" (assignment_expression "eVar7 = (*byte_get)(puVar19,local_64)" identifier = (call_expression "(*byte_get)(puVar19,local_64)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar19,local_64)" ( identifier , identifier )))) ;) (if_statement "if (eVar7 == 0) break;" if (parenthesized_expression "(eVar7 == 0)" ( (binary_expression "eVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = (long)puVar16 - (long)puVar17;" (assignment_expression "lVar11 = (long)puVar16 - (long)puVar17" identifier = (binary_expression "(long)puVar16 - (long)puVar17" (cast_expression "(long)puVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (is_gnu == 0) {\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }\n        else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }" if (parenthesized_expression "(is_gnu == 0)" ( (binary_expression "is_gnu == 0" identifier == number_literal) )) (compound_statement "{\n          uVar20 = lVar11 - 1;\n          printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);\n        }" { (expression_statement "uVar20 = lVar11 - 1;" (assignment_expression "uVar20 = lVar11 - 1" identifier = (binary_expression "lVar11 - 1" identifier - number_literal)) ;) (expression_statement "printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17);" (call_expression "printf("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17)" identifier (argument_list "("    %-6lx\t%.*s\n",eVar7,uVar20 & 0xffffffff,puVar17)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , (binary_expression "uVar20 & 0xffffffff" identifier & number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }" else (compound_statement "{\n          uVar20 = lVar11 - 2;\n          puVar19 = puVar17 + 1;\n          iVar18 = is_gnu;\n          if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);\n          puVar17 = puVar19;\n        }" { (expression_statement "uVar20 = lVar11 - 2;" (assignment_expression "uVar20 = lVar11 - 2" identifier = (binary_expression "lVar11 - 2" identifier - number_literal)) ;) (expression_statement "puVar19 = puVar17 + 1;" (assignment_expression "puVar19 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = is_gnu;" (assignment_expression "iVar18 = is_gnu" identifier = identifier) ;) (if_statement "if ((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)) {\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }\n          else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }" if (parenthesized_expression "((puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8))" ( (binary_expression "(puVar19 < puVar16) || (iVar18 = (int)lVar11, iVar18 - 1U < 8)" (parenthesized_expression "(puVar19 < puVar16)" ( (binary_expression "puVar19 < puVar16" identifier < identifier) )) || (parenthesized_expression "(iVar18 = (int)lVar11, iVar18 - 1U < 8)" ( (comma_expression "iVar18 = (int)lVar11, iVar18 - 1U < 8" (assignment_expression "iVar18 = (int)lVar11" identifier = (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "iVar18 - 1U < 8" (binary_expression "iVar18 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n            eVar15 = (*byte_get)(puVar17,iVar18);\n            uVar3 = (int)eVar15 << 0x18;\n            uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);\n            if (-1 < (int)uVar3) goto LAB_0012547a;\n            uVar13 = dcgettext(0,"s",5);\n          }" { (expression_statement "eVar15 = (*byte_get)(puVar17,iVar18);" (assignment_expression "eVar15 = (*byte_get)(puVar17,iVar18)" identifier = (call_expression "(*byte_get)(puVar17,iVar18)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar17,iVar18)" ( identifier , identifier )))) ;) (expression_statement "uVar3 = (int)eVar15 << 0x18;" (assignment_expression "uVar3 = (int)eVar15 << 0x18" identifier = (binary_expression "(int)eVar15 << 0x18" (cast_expression "(int)eVar15" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5);" (assignment_expression "uVar12 = dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5)" identifier = (call_expression "dcgettext(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5)" identifier (argument_list "(0,*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8),5)" ( number_literal , (pointer_expression "*(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8)" * (cast_expression "(undefined8 *)(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8)" ( (binary_expression "kinds_11759 + (ulong)(uVar3 >> 0x1c & 7) * 8" identifier + (binary_expression "(ulong)(uVar3 >> 0x1c & 7) * 8" (call_expression "(ulong)(uVar3 >> 0x1c & 7)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x1c & 7)" ( (binary_expression "uVar3 >> 0x1c & 7" (binary_expression "uVar3 >> 0x1c" identifier >> number_literal) & number_literal) ))) * number_literal)) )))) , number_literal )))) ;) (if_statement "if (-1 < (int)uVar3) goto LAB_0012547a;" if (parenthesized_expression "(-1 < (int)uVar3)" ( (binary_expression "-1 < (int)uVar3" number_literal < (cast_expression "(int)uVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0012547a;" goto statement_identifier ;)) (expression_statement "uVar13 = dcgettext(0,"s",5);" (assignment_expression "uVar13 = dcgettext(0,"s",5)" identifier = (call_expression "dcgettext(0,"s",5)" identifier (argument_list "(0,"s",5)" ( number_literal , (string_literal ""s"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }" else (compound_statement "{\n            uVar12 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);\n          }" { (expression_statement "uVar12 = dcgettext(0,"no info",5);" (assignment_expression "uVar12 = dcgettext(0,"no info",5)" identifier = (call_expression "dcgettext(0,"no info",5)" identifier (argument_list "(0,"no info",5)" ( number_literal , (string_literal ""no info"" " string_content ") , number_literal )))) ;) (labeled_statement "LAB_0012547a:\n            uVar13 = dcgettext(0,"g",5);" statement_identifier : (expression_statement "uVar13 = dcgettext(0,"g",5);" (assignment_expression "uVar13 = dcgettext(0,"g",5)" identifier = (call_expression "dcgettext(0,"g",5)" identifier (argument_list "(0,"g",5)" ( number_literal , (string_literal ""g"" " string_content ") , number_literal )))) ;)) }))) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",eVar7,uVar13,uVar12,uVar20 & 0xffffffff,puVar19)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , (binary_expression "uVar20 & 0xffffffff" identifier & number_literal) , identifier ))) ;) (expression_statement "puVar17 = puVar19;" (assignment_expression "puVar17 = puVar19" identifier = identifier) ;) }))) (expression_statement "sVar14 = strnlen((char *)puVar17,uVar20);" (assignment_expression "sVar14 = strnlen((char *)puVar17,uVar20)" identifier = (call_expression "strnlen((char *)puVar17,uVar20)" identifier (argument_list "((char *)puVar17,uVar20)" ( (cast_expression "(char *)puVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "puVar19 = puVar17 + sVar14 + 1;" (assignment_expression "puVar19 = puVar17 + sVar14 + 1" identifier = (binary_expression "puVar17 + sVar14 + 1" (binary_expression "puVar17 + sVar14" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(puVar19 < puVar16)" ( (binary_expression "puVar19 < puVar16" identifier < identifier) )) ;) }) (else_clause "else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" else (if_statement "if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" if (parenthesized_expression "(display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0)" ( (binary_expression "display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0" identifier (ERROR "::lexical_block_6::lexical_block_6_9::warned" : : identifier : : identifier : : identifier) == number_literal) )) (compound_statement "{\n      pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar6);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier (argument_list "(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" ( number_literal , (string_literal ""Only DWARF 2 and 3 pubnames are currently supported\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar6);" (call_expression "warn(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (labeled_statement "display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_6::lexical_block_6_9::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_6_9::warned = 1;" statement_identifier : (ERROR ":" :) (expression_statement "warned = 1;" (assignment_expression "warned = 1" identifier = number_literal) ;)))) })))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00125060(long param_1,undefined8 param_2,uint param_3)" identifier (parameter_list "(long param_1,undefined8 param_2,uint param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (expression_statement "pcVar19 = *(char **)(param_1 + 0x20);" (assignment_expression "pcVar19 = *(char **)(param_1 + 0x20)" identifier = (pointer_expression "*(char **)(param_1 + 0x20)" * (cast_expression "(char **)(param_1 + 0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);" (assignment_expression "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30)" identifier = (binary_expression "pcVar19 + *(long *)(param_1 + 0x30)" identifier + (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) )))))) ;) (expression_statement "FUN_00122790(param_2);" (call_expression "FUN_00122790(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_00110740(*(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) ))) ;) (do_statement "do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  }" { (if_statement "if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(pcVar15 <= pcVar19)" ( (binary_expression "pcVar15 <= pcVar19" identifier <= identifier) )) (compound_statement "{\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_00125613:\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 "pcVar8 = pcVar19 + 4;" (assignment_expression "pcVar8 = pcVar19 + 4" identifier = (binary_expression "pcVar19 + 4" identifier + number_literal)) ;) (if_statement "if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (compound_statement "{\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" { (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" statement_identifier : (expression_statement "uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar19,lVar16)" identifier = (call_expression "(*DAT_00159e20)(pcVar19,lVar16)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar19,lVar16)" ( identifier , identifier )))) ;)) (if_statement "if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" if (parenthesized_expression "(uVar9 == 0xffffffff)" ( (binary_expression "uVar9 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }" { (expression_statement "pcVar19 = pcVar19 + 0xc;" (assignment_expression "pcVar19 = pcVar19 + 0xc" identifier = (binary_expression "pcVar19 + 0xc" identifier + number_literal)) ;) (if_statement "if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "(pcVar19 < pcVar15)" ( (binary_expression "pcVar19 < pcVar15" identifier < identifier) )) (compound_statement "{\n          lVar16 = 8;\n        }" { (expression_statement "lVar16 = 8;" (assignment_expression "lVar16 = 8" identifier = number_literal) ;) }) (else_clause "else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" else (if_statement "if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" if (parenthesized_expression "((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U))" ( (binary_expression "(pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) || (parenthesized_expression "(lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" ( (comma_expression "lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar8" identifier = (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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))) ))) )) (compound_statement "{\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" { (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" identifier = identifier) ;) (goto_statement "goto LAB_001250d0;" goto statement_identifier ;) })))) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" identifier = number_literal) ;) (expression_statement "uVar9 = (*DAT_00159e20)(pcVar8,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar8,lVar16)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,lVar16)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,lVar16)" ( identifier , identifier )))) ;) (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" identifier = identifier) ;) }) (else_clause "else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" else (compound_statement "{\n        uVar5 = 4;\n        local_64 = 4;\n      }" { (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) }))) (expression_statement "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 = uVar18 + uVar9;" (assignment_expression "uVar7 = uVar18 + uVar9" identifier = (binary_expression "uVar18 + uVar9" identifier + identifier)) ;) (if_statement "if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;" if (parenthesized_expression "(!CARRY8(uVar18,uVar9))" ( (unary_expression "!CARRY8(uVar18,uVar9)" ! (call_expression "CARRY8(uVar18,uVar9)" identifier (argument_list "(uVar18,uVar9)" ( identifier , identifier )))) )) (goto_statement "goto LAB_001250e2;" goto statement_identifier ;)) (labeled_statement "LAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);" statement_identifier : (expression_statement "uVar12 = FUN_0010ebb0("x",uVar9,0);" (assignment_expression "uVar12 = FUN_0010ebb0("x",uVar9,0)" identifier = (call_expression "FUN_0010ebb0("x",uVar9,0)" identifier (argument_list "("x",uVar9,0)" ( (string_literal ""x"" " string_content ") , identifier , number_literal )))) ;)) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(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 "uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar14 = 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(uVar14,uVar11,uVar18 - uVar5,uVar12);" (call_expression "warn(uVar14,uVar11,uVar18 - uVar5,uVar12)" identifier (argument_list "(uVar14,uVar11,uVar18 - uVar5,uVar12)" ( identifier , identifier , (binary_expression "uVar18 - uVar5" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_00125613;" goto statement_identifier ;) })) (expression_statement "lVar16 = (long)pcVar15 - (long)pcVar19;" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar19" identifier = (binary_expression "(long)pcVar15 - (long)pcVar19" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar19" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((int)lVar16 - 1U < 8) goto LAB_0012523e;" if (parenthesized_expression "((int)lVar16 - 1U < 8)" ( (binary_expression "(int)lVar16 - 1U < 8" (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (goto_statement "goto LAB_0012523e;" goto statement_identifier ;)) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" identifier = number_literal) ;) (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" identifier = number_literal) ;) (labeled_statement "LAB_001250d0:\n    uVar9 = 0;" statement_identifier : (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;)) (expression_statement "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20)" identifier = (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) 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 "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" identifier = identifier) ;) (labeled_statement "LAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" statement_identifier : (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" 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_001255ca;" goto statement_identifier ;))) (expression_statement "pcVar19 = pcVar8 + uVar9;" (assignment_expression "pcVar19 = pcVar8 + uVar9" identifier = (binary_expression "pcVar8 + uVar9" identifier + identifier)) ;) (expression_statement "pcVar17 = pcVar8 + 2;" (assignment_expression "pcVar17 = pcVar8 + 2" identifier = (binary_expression "pcVar8 + 2" identifier + number_literal)) ;) (expression_statement "iVar1 = (int)pcVar15;" (assignment_expression "iVar1 = (int)pcVar15" identifier = (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" identifier = identifier) ;) (if_statement "if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" if (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) (compound_statement "{\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }" { (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8,2);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8,2)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,2)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,2)" ( identifier , number_literal )))) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" if (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) (compound_statement "{\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" { (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (expression_statement "uVar5 = iVar1 - (int)pcVar17;" (assignment_expression "uVar5 = iVar1 - (int)pcVar17" identifier = (binary_expression "iVar1 - (int)pcVar17" identifier - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 - 1 < 8) goto LAB_001252cb;" if (parenthesized_expression "(uVar5 - 1 < 8)" ( (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) (goto_statement "goto LAB_00125146;" goto statement_identifier ;) })) (labeled_statement "LAB_001252b8:\n      uVar2 = (uint)uVar3;" statement_identifier : (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (labeled_statement "LAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" statement_identifier : (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,uVar5)" identifier = (call_expression "(*DAT_00159e20)(pcVar17,uVar5)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar17,uVar5)" ( identifier , identifier )))) ;)) }) (else_clause "else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" else (compound_statement "{\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" { (if_statement "if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" if (parenthesized_expression "((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8))" ( (binary_expression "(pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)" (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) && (parenthesized_expression "((iVar1 - (int)pcVar8) - 1U < 8)" ( (binary_expression "(iVar1 - (int)pcVar8) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar8) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar8)" ( (binary_expression "iVar1 - (int)pcVar8" identifier - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }" { (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8)" identifier = (call_expression "(*DAT_00159e20)(pcVar8)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252b8;" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (goto_statement "goto LAB_001252b8;" goto statement_identifier ;)) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" identifier = (binary_expression "uVar3 - 2" identifier - number_literal)) ;) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" identifier = (cast_expression "(uint)uVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" else (compound_statement "{\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = 0xfffe;" (assignment_expression "uVar4 = 0xfffe" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252cb;" if (parenthesized_expression "(pcVar8 < pcVar15)" ( (binary_expression "pcVar8 < pcVar15" identifier < identifier) )) (goto_statement "goto LAB_001252cb;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00125146:\n      lVar16 = 0;" statement_identifier : (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" identifier = number_literal) ;)) }))) (if_statement "if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" if (parenthesized_expression "(DAT_00159bd4 - 1U < 0xfffffffe)" ( (binary_expression "DAT_00159bd4 - 1U < 0xfffffffe" (binary_expression "DAT_00159bd4 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" { (expression_statement "plVar10 = (long *)(DAT_00159bc8 + 0x10);" (assignment_expression "plVar10 = (long *)(DAT_00159bc8 + 0x10)" identifier = (cast_expression "(long *)(DAT_00159bc8 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00159bc8 + 0x10)" ( (binary_expression "DAT_00159bc8 + 0x10" identifier + number_literal) )))) ;) (do_statement "do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);" do (compound_statement "{\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      }" { (if_statement "if (lVar16 == *plVar10) goto LAB_00125158;" if (parenthesized_expression "(lVar16 == *plVar10)" ( (binary_expression "lVar16 == *plVar10" identifier == (pointer_expression "*plVar10" * identifier)) )) (goto_statement "goto LAB_00125158;" goto statement_identifier ;)) (expression_statement "plVar10 = plVar10 + 0xd;" (assignment_expression "plVar10 = plVar10 + 0xd" identifier = (binary_expression "plVar10 + 0xd" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10)" ( (binary_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10" (cast_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" ( (binary_expression "DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68" (binary_expression "DAT_00159bc8 + 0x78" identifier + number_literal) + (binary_expression "(ulong)(DAT_00159bd4 - 1U) * 0x68" (call_expression "(ulong)(DAT_00159bd4 - 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00159bd4 - 1U)" ( (binary_expression "DAT_00159bd4 - 1U" identifier - number_literal) ))) * number_literal)) ))) != identifier) )) ;) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(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,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);" (assignment_expression "uVar12 = 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(uVar12,lVar16,uVar11);" (call_expression "warn(uVar12,lVar16,uVar11)" identifier (argument_list "(uVar12,lVar16,uVar11)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00125158:\n    pcVar17 = pcVar8 + local_64;" statement_identifier : (expression_statement "pcVar17 = pcVar8 + local_64;" (assignment_expression "pcVar17 = pcVar8 + local_64" identifier = (binary_expression "pcVar8 + local_64" identifier + identifier)) ;)) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" identifier = identifier) ;) (if_statement "if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" if (parenthesized_expression "((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))))" ( (binary_expression "(pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) || (parenthesized_expression "((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" ( (parenthesized_expression "(uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))" ( (comma_expression "uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (assignment_expression "uVar11 = 0" identifier = number_literal) , (binary_expression "pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (binary_expression "pcVar8 < pcVar15" identifier < identifier) && (parenthesized_expression "(uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" ( (comma_expression "uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8" (assignment_expression "uVar5 = iVar1 - (int)pcVar8" identifier = (binary_expression "iVar1 - (int)pcVar8" identifier - (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" identifier - number_literal) < number_literal)) )))) )) ))) )) (compound_statement "{\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" { (expression_statement "uVar11 = (*DAT_00159e20)(pcVar8,uVar5);" (assignment_expression "uVar11 = (*DAT_00159e20)(pcVar8,uVar5)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,uVar5)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,uVar5)" ( identifier , 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,uVar9);" (call_expression "printf(pcVar8,uVar9)" identifier (argument_list "(pcVar8,uVar9)" ( 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,uVar2);" (call_expression "printf(pcVar8,uVar2)" identifier (argument_list "(pcVar8,uVar2)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" identifier (argument_list "(0,"  Offset into .debug_info section:     0x%lx\n",5)" ( number_literal , (string_literal ""  Offset into .debug_info section:     0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,lVar16);" (call_expression "printf(pcVar8,lVar16)" identifier (argument_list "(pcVar8,lVar16)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" identifier (argument_list "(0,"  Size of area in .debug_info section: %ld\n",5)" ( number_literal , (string_literal ""  Size of area in .debug_info section: %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar8,uVar11);" (call_expression "printf(pcVar8,uVar11)" identifier (argument_list "(pcVar8,uVar11)" ( identifier , identifier ))) ;) (if_statement "if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }" { (expression_statement "pcVar8 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar8 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) (if_statement "if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar8 = "\n    Offset\tName\n";\n      }" { (expression_statement "pcVar8 = "\n    Offset\tName\n";" (assignment_expression "pcVar8 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content 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 ))) ;) (do_statement "do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);" do (compound_statement "{\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      }" { (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" identifier = (binary_expression "pcVar17 + local_64" identifier + identifier)) ;) (if_statement "if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" if (parenthesized_expression "(pcVar15 <= pcVar8)" ( (binary_expression "pcVar15 <= pcVar8" identifier <= identifier) )) (compound_statement "{\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" { (if_statement "if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }" if (parenthesized_expression "((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8))" ( (binary_expression "(pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)" (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) && (parenthesized_expression "((iVar1 - (int)pcVar17) - 1U < 8)" ( (binary_expression "(iVar1 - (int)pcVar17) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar17) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar17)" ( (binary_expression "iVar1 - (int)pcVar17" identifier - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n            (*DAT_00159e20)();\n          }" { (expression_statement "(*DAT_00159e20)();" (call_expression "(*DAT_00159e20)()" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "()" ( ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,local_64);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,local_64)" identifier = (call_expression "(*DAT_00159e20)(pcVar17,local_64)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar17,local_64)" ( identifier , identifier )))) ;) (if_statement "if (lVar16 == 0) break;" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar9 = (long)pcVar15 - (long)pcVar8;" (assignment_expression "uVar9 = (long)pcVar15 - (long)pcVar8" identifier = (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }" { (expression_statement "uVar18 = uVar9 - 1;" (assignment_expression "uVar18 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (expression_statement "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);" (call_expression "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" identifier (argument_list "("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) , identifier ))) ;) }) (else_clause "else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" else (compound_statement "{\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" { (expression_statement "uVar18 = uVar9 - 2;" (assignment_expression "uVar18 = uVar9 - 2" identifier = (binary_expression "uVar9 - 2" identifier - number_literal)) ;) (expression_statement "pcVar17 = pcVar8 + 1;" (assignment_expression "pcVar17 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" if (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) (compound_statement "{\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }" { (expression_statement "uVar9 = (ulong)param_3;" (assignment_expression "uVar9 = (ulong)param_3" identifier = (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" statement_identifier : (expression_statement "iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" (assignment_expression "iVar6 = (*DAT_00159e20)(pcVar8,uVar9)" identifier = (call_expression "(*DAT_00159e20)(pcVar8,uVar9)" (parenthesized_expression "(*DAT_00159e20)" ( (pointer_expression "*DAT_00159e20" * identifier) )) (argument_list "(pcVar8,uVar9)" ( identifier , identifier )))) ;)) (expression_statement "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);" (assignment_expression "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" identifier = (call_expression "dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" identifier (argument_list "(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" ( number_literal , (subscript_expression "(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7]" (parenthesized_expression "(&PTR_s_no_info_001533c0)" ( (pointer_expression "&PTR_s_no_info_001533c0" & identifier) )) [ (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c" (call_expression "(uint)(iVar6 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 << 0x18)" ( (binary_expression "iVar6 << 0x18" identifier << number_literal) ))) >> number_literal) & number_literal) ]) , number_literal )))) ;) (if_statement "if (-1 < iVar6 << 0x18) goto LAB_0012547a;" if (parenthesized_expression "(-1 < iVar6 << 0x18)" ( (binary_expression "-1 < iVar6 << 0x18" number_literal < (binary_expression "iVar6 << 0x18" identifier << number_literal)) )) (goto_statement "goto LAB_0012547a;" goto statement_identifier ;)) (expression_statement "uVar12 = dcgettext(0,"s",5);" (assignment_expression "uVar12 = dcgettext(0,"s",5)" identifier = (call_expression "dcgettext(0,"s",5)" identifier (argument_list "(0,"s",5)" ( number_literal , (string_literal ""s"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" else (compound_statement "{\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" { (if_statement "if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" if (parenthesized_expression "((int)uVar9 - 1U < 8)" ( (binary_expression "(int)uVar9 - 1U < 8" (binary_expression "(int)uVar9 - 1U" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) < number_literal) )) (compound_statement "{\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" { (expression_statement "uVar9 = uVar9 & 0xffffffff;" (assignment_expression "uVar9 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (goto_statement "goto LAB_001254d4;" goto statement_identifier ;) })) (expression_statement "uVar11 = dcgettext(0,"no info",5);" (assignment_expression "uVar11 = dcgettext(0,"no info",5)" identifier = (call_expression "dcgettext(0,"no info",5)" identifier (argument_list "(0,"no info",5)" ( number_literal , (string_literal ""no info"" " string_content ") , number_literal )))) ;) (labeled_statement "LAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"g",5);" (assignment_expression "uVar12 = dcgettext(0,"g",5)" identifier = (call_expression "dcgettext(0,"g",5)" identifier (argument_list "(0,"g",5)" ( number_literal , (string_literal ""g"" " string_content ") , number_literal )))) ;)) }))) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , (binary_expression "uVar18 & 0xffffffff" identifier & number_literal) , identifier ))) ;) (expression_statement "pcVar8 = pcVar17;" (assignment_expression "pcVar8 = pcVar17" identifier = identifier) ;) }))) (expression_statement "sVar13 = strnlen(pcVar8,uVar18);" (assignment_expression "sVar13 = strnlen(pcVar8,uVar18)" identifier = (call_expression "strnlen(pcVar8,uVar18)" identifier (argument_list "(pcVar8,uVar18)" ( identifier , identifier )))) ;) (expression_statement "pcVar17 = pcVar8 + sVar13 + 1;" (assignment_expression "pcVar17 = pcVar8 + sVar13 + 1" identifier = (binary_expression "pcVar8 + sVar13 + 1" (binary_expression "pcVar8 + sVar13" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(pcVar17 < pcVar15)" ( (binary_expression "pcVar17 < pcVar15" identifier < identifier) )) ;) }) (else_clause "else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" else (if_statement "if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" if (parenthesized_expression "(DAT_00157488 == 0)" ( (binary_expression "DAT_00157488 == 0" identifier == number_literal) )) (compound_statement "{\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" { (expression_statement "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (call_expression "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier (argument_list "(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" ( number_literal , (string_literal ""Only DWARF 2 and 3 pubnames are currently supported\n"" " string_content escape_sequence ") , number_literal ))) ;) (expression_statement "warn();" (call_expression "warn()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00157488 = 1;" (assignment_expression "DAT_00157488 = 1" identifier = number_literal) ;) })))) }) 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) , (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 (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( 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) ))) ;) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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) ;) (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 + IDENT)) ;) (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 )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression 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 )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (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 (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ))) != IDENT) )) ;) (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 ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (binary_expression IDENT < IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression (binary_expression IDENT - LIT) < LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 , 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 , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (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 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 ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (break_statement break ;) })) (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) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT , (binary_expression IDENT & LIT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (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 )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> LIT) & LIT) ]) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT << LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined8 FUN_00125060(long param_1,undefined8 param_2,uint param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" (type_identifier "undefined8") (function_declarator "FUN_00125060(long param_1,undefined8 param_2,uint param_3)" (identifier "FUN_00125060") (parameter_list "(long param_1,undefined8 param_2,uint param_3)" (( "(") (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")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ushort uVar3;\n  ushort uVar4;\n  uint uVar5;\n  int iVar6;\n  ulong uVar7;\n  char *pcVar8;\n  ulong uVar9;\n  long *plVar10;\n  undefined8 uVar11;\n  undefined8 uVar12;\n  size_t sVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  long lVar16;\n  char *pcVar17;\n  ulong uVar18;\n  char *pcVar19;\n  uint local_64;\n  \n  pcVar19 = *(char **)(param_1 + 0x20);\n  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);\n  FUN_00122790(param_2);\n  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);\n  do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "size_t sVar13;" (primitive_type "size_t") (identifier "sVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "char *pcVar19;" (primitive_type "char") (pointer_declarator "*pcVar19" (* "*") (identifier "pcVar19")) (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (expression_statement "pcVar19 = *(char **)(param_1 + 0x20);" (assignment_expression "pcVar19 = *(char **)(param_1 + 0x20)" (identifier "pcVar19") (= "=") (pointer_expression "*(char **)(param_1 + 0x20)" (* "*") (cast_expression "(char **)(param_1 + 0x20)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);" (assignment_expression "pcVar15 = pcVar19 + *(long *)(param_1 + 0x30)" (identifier "pcVar15") (= "=") (binary_expression "pcVar19 + *(long *)(param_1 + 0x30)" (identifier "pcVar19") (+ "+") (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")) () ")")))))) (; ";")) (expression_statement "FUN_00122790(param_2);" (call_expression "FUN_00122790(param_2)" (identifier "FUN_00122790") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);" (call_expression "FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18)" (identifier "FUN_00110740") (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")) () ")"))) (; ";")) (do_statement "do {\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }\n    pcVar8 = pcVar19 + 4;\n    if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }\n    lVar16 = (long)pcVar15 - (long)pcVar19;\n    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;\n    local_64 = 4;\n    uVar5 = 4;\nLAB_001250d0:\n    uVar9 = 0;\n    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n    uVar18 = uVar7;\nLAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;\n    pcVar19 = pcVar8 + uVar9;\n    pcVar17 = pcVar8 + 2;\n    iVar1 = (int)pcVar15;\n    uVar5 = local_64;\n    if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }\n    if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }\nLAB_00125158:\n    pcVar17 = pcVar8 + local_64;\n    uVar5 = local_64;\n    if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }\n    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar8,uVar9);\n    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar8,uVar2);\n    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar8,lVar16);\n    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar8,uVar11);\n    if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }\n  }" ({ "{") (if_statement "if (pcVar15 <= pcVar19) {\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" (if "if") (parenthesized_expression "(pcVar15 <= pcVar19)" (( "(") (binary_expression "pcVar15 <= pcVar19" (identifier "pcVar15") (<= "<=") (identifier "pcVar19")) () ")")) (compound_statement "{\nLAB_00125613:\n      putchar(10);\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_00125613:\n      putchar(10);" (statement_identifier "LAB_00125613") (: ":") (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 "pcVar8 = pcVar19 + 4;" (assignment_expression "pcVar8 = pcVar19 + 4" (identifier "pcVar8") (= "=") (binary_expression "pcVar19 + 4" (identifier "pcVar19") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (pcVar8 < pcVar15) {\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" (if "if") (parenthesized_expression "(pcVar8 < pcVar15)" (( "(") (binary_expression "pcVar8 < pcVar15" (identifier "pcVar8") (< "<") (identifier "pcVar15")) () ")")) (compound_statement "{\n      lVar16 = 4;\nLAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);\n      if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }\n      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);\n      uVar7 = uVar18 + uVar9;\n      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;\nLAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);\n      goto LAB_00125613;\n    }" ({ "{") (expression_statement "lVar16 = 4;" (assignment_expression "lVar16 = 4" (identifier "lVar16") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0012523e:\n      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" (statement_identifier "LAB_0012523e") (: ":") (expression_statement "uVar9 = (*DAT_00159e20)(pcVar19,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar19,lVar16)" (identifier "uVar9") (= "=") (call_expression "(*DAT_00159e20)(pcVar19,lVar16)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar19,lVar16)" (( "(") (identifier "pcVar19") (, ",") (identifier "lVar16") () ")")))) (; ";"))) (if_statement "if (uVar9 == 0xffffffff) {\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }\n      else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" (if "if") (parenthesized_expression "(uVar9 == 0xffffffff)" (( "(") (binary_expression "uVar9 == 0xffffffff" (identifier "uVar9") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        pcVar19 = pcVar19 + 0xc;\n        if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }\n        uVar5 = 0xc;\n        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);\n        local_64 = 8;\n        pcVar8 = pcVar19;\n      }" ({ "{") (expression_statement "pcVar19 = pcVar19 + 0xc;" (assignment_expression "pcVar19 = pcVar19 + 0xc" (identifier "pcVar19") (= "=") (binary_expression "pcVar19 + 0xc" (identifier "pcVar19") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (pcVar19 < pcVar15) {\n          lVar16 = 8;\n        }\n        else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" (if "if") (parenthesized_expression "(pcVar19 < pcVar15)" (( "(") (binary_expression "pcVar19 < pcVar15" (identifier "pcVar19") (< "<") (identifier "pcVar15")) () ")")) (compound_statement "{\n          lVar16 = 8;\n        }" ({ "{") (expression_statement "lVar16 = 8;" (assignment_expression "lVar16 = 8" (identifier "lVar16") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" (else "else") (if_statement "if ((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" (if "if") (parenthesized_expression "((pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U))" (( "(") (binary_expression "(pcVar15 <= pcVar8) ||\n                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" (parenthesized_expression "(pcVar15 <= pcVar8)" (( "(") (binary_expression "pcVar15 <= pcVar8" (identifier "pcVar15") (<= "<=") (identifier "pcVar8")) () ")")) (|| "||") (parenthesized_expression "(lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)" (( "(") (comma_expression "lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar8" (identifier "lVar16") (= "=") (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(long)pcVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar8")))) (, ",") (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")))) () ")"))) () ")")) (compound_statement "{\n          local_64 = 8;\n          uVar5 = 0xc;\n          pcVar8 = pcVar19;\n          goto LAB_001250d0;\n        }" ({ "{") (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" (identifier "local_64") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" (identifier "uVar5") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" (identifier "pcVar8") (= "=") (identifier "pcVar19")) (; ";")) (goto_statement "goto LAB_001250d0;" (goto "goto") (statement_identifier "LAB_001250d0") (; ";")) (} "}"))))) (expression_statement "uVar5 = 0xc;" (assignment_expression "uVar5 = 0xc" (identifier "uVar5") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar9 = (*DAT_00159e20)(pcVar8,lVar16);" (assignment_expression "uVar9 = (*DAT_00159e20)(pcVar8,lVar16)" (identifier "uVar9") (= "=") (call_expression "(*DAT_00159e20)(pcVar8,lVar16)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar8,lVar16)" (( "(") (identifier "pcVar8") (, ",") (identifier "lVar16") () ")")))) (; ";")) (expression_statement "local_64 = 8;" (assignment_expression "local_64 = 8" (identifier "local_64") (= "=") (number_literal "8")) (; ";")) (expression_statement "pcVar8 = pcVar19;" (assignment_expression "pcVar8 = pcVar19" (identifier "pcVar8") (= "=") (identifier "pcVar19")) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = 4;\n        local_64 = 4;\n      }" (else "else") (compound_statement "{\n        uVar5 = 4;\n        local_64 = 4;\n      }" ({ "{") (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" (identifier "uVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" (identifier "local_64") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20)" (identifier "uVar18") (= "=") (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar8")) (- "-") (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 = uVar18 + uVar9;" (assignment_expression "uVar7 = uVar18 + uVar9" (identifier "uVar7") (= "=") (binary_expression "uVar18 + uVar9" (identifier "uVar18") (+ "+") (identifier "uVar9"))) (; ";")) (if_statement "if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;" (if "if") (parenthesized_expression "(!CARRY8(uVar18,uVar9))" (( "(") (unary_expression "!CARRY8(uVar18,uVar9)" (! "!") (call_expression "CARRY8(uVar18,uVar9)" (identifier "CARRY8") (argument_list "(uVar18,uVar9)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar9") () ")")))) () ")")) (goto_statement "goto LAB_001250e2;" (goto "goto") (statement_identifier "LAB_001250e2") (; ";"))) (labeled_statement "LAB_001255ca:\n      uVar12 = FUN_0010ebb0("x",uVar9,0);" (statement_identifier "LAB_001255ca") (: ":") (expression_statement "uVar12 = FUN_0010ebb0("x",uVar9,0);" (assignment_expression "uVar12 = FUN_0010ebb0("x",uVar9,0)" (identifier "uVar12") (= "=") (call_expression "FUN_0010ebb0("x",uVar9,0)" (identifier "FUN_0010ebb0") (argument_list "("x",uVar9,0)" (( "(") (string_literal ""x"" (" """) (string_content "x") (" """)) (, ",") (identifier "uVar9") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar11") (= "=") (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 "uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" (identifier "uVar14") (= "=") (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(uVar14,uVar11,uVar18 - uVar5,uVar12);" (call_expression "warn(uVar14,uVar11,uVar18 - uVar5,uVar12)" (identifier "warn") (argument_list "(uVar14,uVar11,uVar18 - uVar5,uVar12)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar11") (, ",") (binary_expression "uVar18 - uVar5" (identifier "uVar18") (- "-") (identifier "uVar5")) (, ",") (identifier "uVar12") () ")"))) (; ";")) (goto_statement "goto LAB_00125613;" (goto "goto") (statement_identifier "LAB_00125613") (; ";")) (} "}"))) (expression_statement "lVar16 = (long)pcVar15 - (long)pcVar19;" (assignment_expression "lVar16 = (long)pcVar15 - (long)pcVar19" (identifier "lVar16") (= "=") (binary_expression "(long)pcVar15 - (long)pcVar19" (cast_expression "(long)pcVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(long)pcVar19" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar19")))) (; ";")) (if_statement "if ((int)lVar16 - 1U < 8) goto LAB_0012523e;" (if "if") (parenthesized_expression "((int)lVar16 - 1U < 8)" (( "(") (binary_expression "(int)lVar16 - 1U < 8" (binary_expression "(int)lVar16 - 1U" (cast_expression "(int)lVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar16")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_0012523e;" (goto "goto") (statement_identifier "LAB_0012523e") (; ";"))) (expression_statement "local_64 = 4;" (assignment_expression "local_64 = 4" (identifier "local_64") (= "=") (number_literal "4")) (; ";")) (expression_statement "uVar5 = 4;" (assignment_expression "uVar5 = 4" (identifier "uVar5") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_001250d0:\n    uVar9 = 0;" (statement_identifier "LAB_001250d0") (: ":") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);" (assignment_expression "uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20)" (identifier "uVar7") (= "=") (binary_expression "(long)pcVar8 - *(long *)(param_1 + 0x20)" (cast_expression "(long)pcVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar8")) (- "-") (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 "uVar18 = uVar7;" (assignment_expression "uVar18 = uVar7" (identifier "uVar18") (= "=") (identifier "uVar7")) (; ";")) (labeled_statement "LAB_001250e2:\n    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" (statement_identifier "LAB_001250e2") (: ":") (if_statement "if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;" (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_001255ca;" (goto "goto") (statement_identifier "LAB_001255ca") (; ";")))) (expression_statement "pcVar19 = pcVar8 + uVar9;" (assignment_expression "pcVar19 = pcVar8 + uVar9" (identifier "pcVar19") (= "=") (binary_expression "pcVar8 + uVar9" (identifier "pcVar8") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "pcVar17 = pcVar8 + 2;" (assignment_expression "pcVar17 = pcVar8 + 2" (identifier "pcVar17") (= "=") (binary_expression "pcVar8 + 2" (identifier "pcVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar1 = (int)pcVar15;" (assignment_expression "iVar1 = (int)pcVar15" (identifier "iVar1") (= "=") (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" (identifier "uVar5") (= "=") (identifier "local_64")) (; ";")) (if_statement "if (pcVar17 < pcVar15) {\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }\n    else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" (if "if") (parenthesized_expression "(pcVar17 < pcVar15)" (( "(") (binary_expression "pcVar17 < pcVar15" (identifier "pcVar17") (< "<") (identifier "pcVar15")) () ")")) (compound_statement "{\n      uVar3 = (*DAT_00159e20)(pcVar8,2);\n      pcVar8 = pcVar17 + local_64;\n      if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }\nLAB_001252b8:\n      uVar2 = (uint)uVar3;\n      uVar4 = uVar3 - 2;\nLAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);\n    }" ({ "{") (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8,2);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8,2)" (identifier "uVar3") (= "=") (call_expression "(*DAT_00159e20)(pcVar8,2)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar8,2)" (( "(") (identifier "pcVar8") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" (identifier "pcVar8") (= "=") (binary_expression "pcVar17 + local_64" (identifier "pcVar17") (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if (pcVar15 <= pcVar8) {\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" (if "if") (parenthesized_expression "(pcVar15 <= pcVar8)" (( "(") (binary_expression "pcVar15 <= pcVar8" (identifier "pcVar15") (<= "<=") (identifier "pcVar8")) () ")")) (compound_statement "{\n        uVar4 = uVar3 - 2;\n        uVar5 = iVar1 - (int)pcVar17;\n        uVar2 = (uint)uVar3;\n        if (uVar5 - 1 < 8) goto LAB_001252cb;\n        goto LAB_00125146;\n      }" ({ "{") (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" (identifier "uVar4") (= "=") (binary_expression "uVar3 - 2" (identifier "uVar3") (- "-") (number_literal "2"))) (; ";")) (expression_statement "uVar5 = iVar1 - (int)pcVar17;" (assignment_expression "uVar5 = iVar1 - (int)pcVar17" (identifier "uVar5") (= "=") (binary_expression "iVar1 - (int)pcVar17" (identifier "iVar1") (- "-") (cast_expression "(int)pcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar17")))) (; ";")) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" (identifier "uVar2") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (uVar5 - 1 < 8) goto LAB_001252cb;" (if "if") (parenthesized_expression "(uVar5 - 1 < 8)" (( "(") (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_001252cb;" (goto "goto") (statement_identifier "LAB_001252cb") (; ";"))) (goto_statement "goto LAB_00125146;" (goto "goto") (statement_identifier "LAB_00125146") (; ";")) (} "}"))) (labeled_statement "LAB_001252b8:\n      uVar2 = (uint)uVar3;" (statement_identifier "LAB_001252b8") (: ":") (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" (identifier "uVar2") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";"))) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" (identifier "uVar4") (= "=") (binary_expression "uVar3 - 2" (identifier "uVar3") (- "-") (number_literal "2"))) (; ";")) (labeled_statement "LAB_001252cb:\n      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" (statement_identifier "LAB_001252cb") (: ":") (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,uVar5);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,uVar5)" (identifier "lVar16") (= "=") (call_expression "(*DAT_00159e20)(pcVar17,uVar5)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar17,uVar5)" (( "(") (identifier "pcVar17") (, ",") (identifier "uVar5") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" (else "else") (compound_statement "{\n      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }\nLAB_00125146:\n      lVar16 = 0;\n    }" ({ "{") (if_statement "if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }\n      else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" (if "if") (parenthesized_expression "((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8))" (( "(") (binary_expression "(pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)" (parenthesized_expression "(pcVar8 < pcVar15)" (( "(") (binary_expression "pcVar8 < pcVar15" (identifier "pcVar8") (< "<") (identifier "pcVar15")) () ")")) (&& "&&") (parenthesized_expression "((iVar1 - (int)pcVar8) - 1U < 8)" (( "(") (binary_expression "(iVar1 - (int)pcVar8) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar8) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar8)" (( "(") (binary_expression "iVar1 - (int)pcVar8" (identifier "iVar1") (- "-") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        uVar3 = (*DAT_00159e20)(pcVar8);\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252b8;\n        uVar4 = uVar3 - 2;\n        uVar2 = (uint)uVar3;\n      }" ({ "{") (expression_statement "uVar3 = (*DAT_00159e20)(pcVar8);" (assignment_expression "uVar3 = (*DAT_00159e20)(pcVar8)" (identifier "uVar3") (= "=") (call_expression "(*DAT_00159e20)(pcVar8)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")")))) (; ";")) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" (identifier "pcVar8") (= "=") (binary_expression "pcVar17 + local_64" (identifier "pcVar17") (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252b8;" (if "if") (parenthesized_expression "(pcVar8 < pcVar15)" (( "(") (binary_expression "pcVar8 < pcVar15" (identifier "pcVar8") (< "<") (identifier "pcVar15")) () ")")) (goto_statement "goto LAB_001252b8;" (goto "goto") (statement_identifier "LAB_001252b8") (; ";"))) (expression_statement "uVar4 = uVar3 - 2;" (assignment_expression "uVar4 = uVar3 - 2" (identifier "uVar4") (= "=") (binary_expression "uVar3 - 2" (identifier "uVar3") (- "-") (number_literal "2"))) (; ";")) (expression_statement "uVar2 = (uint)uVar3;" (assignment_expression "uVar2 = (uint)uVar3" (identifier "uVar2") (= "=") (cast_expression "(uint)uVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar3"))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" (else "else") (compound_statement "{\n        uVar2 = 0;\n        uVar4 = 0xfffe;\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar8 < pcVar15) goto LAB_001252cb;\n      }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = 0xfffe;" (assignment_expression "uVar4 = 0xfffe" (identifier "uVar4") (= "=") (number_literal "0xfffe")) (; ";")) (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" (identifier "pcVar8") (= "=") (binary_expression "pcVar17 + local_64" (identifier "pcVar17") (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if (pcVar8 < pcVar15) goto LAB_001252cb;" (if "if") (parenthesized_expression "(pcVar8 < pcVar15)" (( "(") (binary_expression "pcVar8 < pcVar15" (identifier "pcVar8") (< "<") (identifier "pcVar15")) () ")")) (goto_statement "goto LAB_001252cb;" (goto "goto") (statement_identifier "LAB_001252cb") (; ";"))) (} "}")))) (labeled_statement "LAB_00125146:\n      lVar16 = 0;" (statement_identifier "LAB_00125146") (: ":") (expression_statement "lVar16 = 0;" (assignment_expression "lVar16 = 0" (identifier "lVar16") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (if_statement "if (DAT_00159bd4 - 1U < 0xfffffffe) {\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" (if "if") (parenthesized_expression "(DAT_00159bd4 - 1U < 0xfffffffe)" (( "(") (binary_expression "DAT_00159bd4 - 1U < 0xfffffffe" (binary_expression "DAT_00159bd4 - 1U" (identifier "DAT_00159bd4") (- "-") (number_literal "1U")) (< "<") (number_literal "0xfffffffe")) () ")")) (compound_statement "{\n      plVar10 = (long *)(DAT_00159bc8 + 0x10);\n      do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);\n      uVar11 = *(undefined8 *)(param_1 + 0x10);\n      uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);\n      warn(uVar12,lVar16,uVar11);\n    }" ({ "{") (expression_statement "plVar10 = (long *)(DAT_00159bc8 + 0x10);" (assignment_expression "plVar10 = (long *)(DAT_00159bc8 + 0x10)" (identifier "plVar10") (= "=") (cast_expression "(long *)(DAT_00159bc8 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00159bc8 + 0x10)" (( "(") (binary_expression "DAT_00159bc8 + 0x10" (identifier "DAT_00159bc8") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (do_statement "do {\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);" (do "do") (compound_statement "{\n        if (lVar16 == *plVar10) goto LAB_00125158;\n        plVar10 = plVar10 + 0xd;\n      }" ({ "{") (if_statement "if (lVar16 == *plVar10) goto LAB_00125158;" (if "if") (parenthesized_expression "(lVar16 == *plVar10)" (( "(") (binary_expression "lVar16 == *plVar10" (identifier "lVar16") (== "==") (pointer_expression "*plVar10" (* "*") (identifier "plVar10"))) () ")")) (goto_statement "goto LAB_00125158;" (goto "goto") (statement_identifier "LAB_00125158") (; ";"))) (expression_statement "plVar10 = plVar10 + 0xd;" (assignment_expression "plVar10 = plVar10 + 0xd" (identifier "plVar10") (= "=") (binary_expression "plVar10 + 0xd" (identifier "plVar10") (+ "+") (number_literal "0xd"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10)" (( "(") (binary_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10" (cast_expression "(long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68)" (( "(") (binary_expression "DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68" (binary_expression "DAT_00159bc8 + 0x78" (identifier "DAT_00159bc8") (+ "+") (number_literal "0x78")) (+ "+") (binary_expression "(ulong)(DAT_00159bd4 - 1U) * 0x68" (call_expression "(ulong)(DAT_00159bd4 - 1U)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(DAT_00159bd4 - 1U)" (( "(") (binary_expression "DAT_00159bd4 - 1U" (identifier "DAT_00159bd4") (- "-") (number_literal "1U")) () ")"))) (* "*") (number_literal "0x68"))) () ")"))) (!= "!=") (identifier "plVar10")) () ")")) (; ";")) (expression_statement "uVar11 = *(undefined8 *)(param_1 + 0x10);" (assignment_expression "uVar11 = *(undefined8 *)(param_1 + 0x10)" (identifier "uVar11") (= "=") (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,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5);" (assignment_expression "uVar12 = dcgettext(0,\n                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                         ,5)" (identifier "uVar12") (= "=") (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(uVar12,lVar16,uVar11);" (call_expression "warn(uVar12,lVar16,uVar11)" (identifier "warn") (argument_list "(uVar12,lVar16,uVar11)" (( "(") (identifier "uVar12") (, ",") (identifier "lVar16") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00125158:\n    pcVar17 = pcVar8 + local_64;" (statement_identifier "LAB_00125158") (: ":") (expression_statement "pcVar17 = pcVar8 + local_64;" (assignment_expression "pcVar17 = pcVar8 + local_64" (identifier "pcVar17") (= "=") (binary_expression "pcVar8 + local_64" (identifier "pcVar8") (+ "+") (identifier "local_64"))) (; ";"))) (expression_statement "uVar5 = local_64;" (assignment_expression "uVar5 = local_64" (identifier "uVar5") (= "=") (identifier "local_64")) (; ";")) (if_statement "if ((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" (if "if") (parenthesized_expression "((pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))))" (( "(") (binary_expression "(pcVar17 < pcVar15) ||\n       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" (parenthesized_expression "(pcVar17 < pcVar15)" (( "(") (binary_expression "pcVar17 < pcVar15" (identifier "pcVar17") (< "<") (identifier "pcVar15")) () ")")) (|| "||") (parenthesized_expression "((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))" (( "(") (parenthesized_expression "(uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8))" (( "(") (comma_expression "uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (, ",") (binary_expression "pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (binary_expression "pcVar8 < pcVar15" (identifier "pcVar8") (< "<") (identifier "pcVar15")) (&& "&&") (parenthesized_expression "(uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)" (( "(") (comma_expression "uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8" (assignment_expression "uVar5 = iVar1 - (int)pcVar8" (identifier "uVar5") (= "=") (binary_expression "iVar1 - (int)pcVar8" (identifier "iVar1") (- "-") (cast_expression "(int)pcVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar8")))) (, ",") (binary_expression "uVar5 - 1 < 8" (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")) (< "<") (number_literal "8"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);\n    }" ({ "{") (expression_statement "uVar11 = (*DAT_00159e20)(pcVar8,uVar5);" (assignment_expression "uVar11 = (*DAT_00159e20)(pcVar8,uVar5)" (identifier "uVar11") (= "=") (call_expression "(*DAT_00159e20)(pcVar8,uVar5)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar8,uVar5)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar5") () ")")))) (; ";")) (} "}"))) (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,uVar9);" (call_expression "printf(pcVar8,uVar9)" (identifier "printf") (argument_list "(pcVar8,uVar9)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar9") () ")"))) (; ";")) (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,uVar2);" (call_expression "printf(pcVar8,uVar2)" (identifier "printf") (argument_list "(pcVar8,uVar2)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" (identifier "dcgettext") (argument_list "(0,"  Offset into .debug_info section:     0x%lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Offset into .debug_info section:     0x%lx\n"" (" """) (string_content "  Offset into .debug_info section:     0x%lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8,lVar16);" (call_expression "printf(pcVar8,lVar16)" (identifier "printf") (argument_list "(pcVar8,lVar16)" (( "(") (identifier "pcVar8") (, ",") (identifier "lVar16") () ")"))) (; ";")) (expression_statement "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" (identifier "pcVar8") (= "=") (cast_expression "(char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" (identifier "dcgettext") (argument_list "(0,"  Size of area in .debug_info section: %ld\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""  Size of area in .debug_info section: %ld\n"" (" """) (string_content "  Size of area in .debug_info section: %ld") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar8,uVar11);" (call_expression "printf(pcVar8,uVar11)" (identifier "printf") (argument_list "(pcVar8,uVar11)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar11") () ")"))) (; ";")) (if_statement "if (uVar4 < 2) {\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }\n    else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      pcVar8 = "\n    Offset  Kind          Name\n";\n      if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }\n      pcVar8 = (char *)dcgettext(0,pcVar8,5);\n      printf(pcVar8);\n      do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);\n    }" ({ "{") (expression_statement "pcVar8 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar8 = "\n    Offset  Kind          Name\n"" (identifier "pcVar8") (= "=") (string_literal ""\n    Offset  Kind          Name\n"" (" """) (escape_sequence "\n") (string_content "    Offset  Kind          Name") (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (param_3 == 0) {\n        pcVar8 = "\n    Offset\tName\n";\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar8 = "\n    Offset\tName\n";\n      }" ({ "{") (expression_statement "pcVar8 = "\n    Offset\tName\n";" (assignment_expression "pcVar8 = "\n    Offset\tName\n"" (identifier "pcVar8") (= "=") (string_literal ""\n    Offset\tName\n"" (" """) (escape_sequence "\n") (string_content "    Offset") (escape_sequence "\t") (string_content "Name") (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") () ")"))) (; ";")) (do_statement "do {\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      } while (pcVar17 < pcVar15);" (do "do") (compound_statement "{\n        pcVar8 = pcVar17 + local_64;\n        if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }\n        lVar16 = (*DAT_00159e20)(pcVar17,local_64);\n        if (lVar16 == 0) break;\n        uVar9 = (long)pcVar15 - (long)pcVar8;\n        if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }\n        sVar13 = strnlen(pcVar8,uVar18);\n        pcVar17 = pcVar8 + sVar13 + 1;\n      }" ({ "{") (expression_statement "pcVar8 = pcVar17 + local_64;" (assignment_expression "pcVar8 = pcVar17 + local_64" (identifier "pcVar8") (= "=") (binary_expression "pcVar17 + local_64" (identifier "pcVar17") (+ "+") (identifier "local_64"))) (; ";")) (if_statement "if (pcVar15 <= pcVar8) {\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(pcVar15 <= pcVar8)" (( "(") (binary_expression "pcVar15 <= pcVar8" (identifier "pcVar15") (<= "<=") (identifier "pcVar8")) () ")")) (compound_statement "{\n          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }\n          break;\n        }" ({ "{") (if_statement "if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {\n            (*DAT_00159e20)();\n          }" (if "if") (parenthesized_expression "((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8))" (( "(") (binary_expression "(pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)" (parenthesized_expression "(pcVar17 < pcVar15)" (( "(") (binary_expression "pcVar17 < pcVar15" (identifier "pcVar17") (< "<") (identifier "pcVar15")) () ")")) (&& "&&") (parenthesized_expression "((iVar1 - (int)pcVar17) - 1U < 8)" (( "(") (binary_expression "(iVar1 - (int)pcVar17) - 1U < 8" (binary_expression "(iVar1 - (int)pcVar17) - 1U" (parenthesized_expression "(iVar1 - (int)pcVar17)" (( "(") (binary_expression "iVar1 - (int)pcVar17" (identifier "iVar1") (- "-") (cast_expression "(int)pcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar17"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n            (*DAT_00159e20)();\n          }" ({ "{") (expression_statement "(*DAT_00159e20)();" (call_expression "(*DAT_00159e20)()" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "lVar16 = (*DAT_00159e20)(pcVar17,local_64);" (assignment_expression "lVar16 = (*DAT_00159e20)(pcVar17,local_64)" (identifier "lVar16") (= "=") (call_expression "(*DAT_00159e20)(pcVar17,local_64)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar17,local_64)" (( "(") (identifier "pcVar17") (, ",") (identifier "local_64") () ")")))) (; ";")) (if_statement "if (lVar16 == 0) break;" (if "if") (parenthesized_expression "(lVar16 == 0)" (( "(") (binary_expression "lVar16 == 0" (identifier "lVar16") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar9 = (long)pcVar15 - (long)pcVar8;" (assignment_expression "uVar9 = (long)pcVar15 - (long)pcVar8" (identifier "uVar9") (= "=") (binary_expression "(long)pcVar15 - (long)pcVar8" (cast_expression "(long)pcVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(long)pcVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar8")))) (; ";")) (if_statement "if (param_3 == 0) {\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }\n        else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar18 = uVar9 - 1;\n          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);\n        }" ({ "{") (expression_statement "uVar18 = uVar9 - 1;" (assignment_expression "uVar18 = uVar9 - 1" (identifier "uVar18") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (expression_statement "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);" (call_expression "printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" (identifier "printf") (argument_list "("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8)" (( "(") (string_literal ""    %-6lx\t%.*s\n"" (" """) (string_content "    %-6lx") (escape_sequence "\t") (string_content "%.*s") (escape_sequence "\n") (" """)) (, ",") (identifier "lVar16") (, ",") (binary_expression "uVar18 & 0xffffffff" (identifier "uVar18") (& "&") (number_literal "0xffffffff")) (, ",") (identifier "pcVar8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" (else "else") (compound_statement "{\n          uVar18 = uVar9 - 2;\n          pcVar17 = pcVar8 + 1;\n          if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }\n          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);\n          pcVar8 = pcVar17;\n        }" ({ "{") (expression_statement "uVar18 = uVar9 - 2;" (assignment_expression "uVar18 = uVar9 - 2" (identifier "uVar18") (= "=") (binary_expression "uVar9 - 2" (identifier "uVar9") (- "-") (number_literal "2"))) (; ";")) (expression_statement "pcVar17 = pcVar8 + 1;" (assignment_expression "pcVar17 = pcVar8 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar8 + 1" (identifier "pcVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar17 < pcVar15) {\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }\n          else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" (if "if") (parenthesized_expression "(pcVar17 < pcVar15)" (( "(") (binary_expression "pcVar17 < pcVar15" (identifier "pcVar17") (< "<") (identifier "pcVar15")) () ")")) (compound_statement "{\n            uVar9 = (ulong)param_3;\nLAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);\n            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);\n            if (-1 < iVar6 << 0x18) goto LAB_0012547a;\n            uVar12 = dcgettext(0,"s",5);\n          }" ({ "{") (expression_statement "uVar9 = (ulong)param_3;" (assignment_expression "uVar9 = (ulong)param_3" (identifier "uVar9") (= "=") (cast_expression "(ulong)param_3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_3"))) (; ";")) (labeled_statement "LAB_001254d4:\n            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" (statement_identifier "LAB_001254d4") (: ":") (expression_statement "iVar6 = (*DAT_00159e20)(pcVar8,uVar9);" (assignment_expression "iVar6 = (*DAT_00159e20)(pcVar8,uVar9)" (identifier "iVar6") (= "=") (call_expression "(*DAT_00159e20)(pcVar8,uVar9)" (parenthesized_expression "(*DAT_00159e20)" (( "(") (pointer_expression "*DAT_00159e20" (* "*") (identifier "DAT_00159e20")) () ")")) (argument_list "(pcVar8,uVar9)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar9") () ")")))) (; ";"))) (expression_statement "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);" (assignment_expression "uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" (identifier "dcgettext") (argument_list "(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5)" (( "(") (number_literal "0") (, ",") (subscript_expression "(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7]" (parenthesized_expression "(&PTR_s_no_info_001533c0)" (( "(") (pointer_expression "&PTR_s_no_info_001533c0" (& "&") (identifier "PTR_s_no_info_001533c0")) () ")")) ([ "[") (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar6 << 0x18) >> 0x1c" (call_expression "(uint)(iVar6 << 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 << 0x18)" (( "(") (binary_expression "iVar6 << 0x18" (identifier "iVar6") (<< "<<") (number_literal "0x18")) () ")"))) (>> ">>") (number_literal "0x1c")) (& "&") (number_literal "7")) (] "]")) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if (-1 < iVar6 << 0x18) goto LAB_0012547a;" (if "if") (parenthesized_expression "(-1 < iVar6 << 0x18)" (( "(") (binary_expression "-1 < iVar6 << 0x18" (number_literal "-1") (< "<") (binary_expression "iVar6 << 0x18" (identifier "iVar6") (<< "<<") (number_literal "0x18"))) () ")")) (goto_statement "goto LAB_0012547a;" (goto "goto") (statement_identifier "LAB_0012547a") (; ";"))) (expression_statement "uVar12 = dcgettext(0,"s",5);" (assignment_expression "uVar12 = dcgettext(0,"s",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"s",5)" (identifier "dcgettext") (argument_list "(0,"s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""s"" (" """) (string_content "s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" (else "else") (compound_statement "{\n            if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }\n            uVar11 = dcgettext(0,"no info",5);\nLAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);\n          }" ({ "{") (if_statement "if ((int)uVar9 - 1U < 8) {\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" (if "if") (parenthesized_expression "((int)uVar9 - 1U < 8)" (( "(") (binary_expression "(int)uVar9 - 1U < 8" (binary_expression "(int)uVar9 - 1U" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n              uVar9 = uVar9 & 0xffffffff;\n              goto LAB_001254d4;\n            }" ({ "{") (expression_statement "uVar9 = uVar9 & 0xffffffff;" (assignment_expression "uVar9 = uVar9 & 0xffffffff" (identifier "uVar9") (= "=") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_001254d4;" (goto "goto") (statement_identifier "LAB_001254d4") (; ";")) (} "}"))) (expression_statement "uVar11 = dcgettext(0,"no info",5);" (assignment_expression "uVar11 = dcgettext(0,"no info",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"no info",5)" (identifier "dcgettext") (argument_list "(0,"no info",5)" (( "(") (number_literal "0") (, ",") (string_literal ""no info"" (" """) (string_content "no info") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (labeled_statement "LAB_0012547a:\n            uVar12 = dcgettext(0,"g",5);" (statement_identifier "LAB_0012547a") (: ":") (expression_statement "uVar12 = dcgettext(0,"g",5);" (assignment_expression "uVar12 = dcgettext(0,"g",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"g",5)" (identifier "dcgettext") (argument_list "(0,"g",5)" (( "(") (number_literal "0") (, ",") (string_literal ""g"" (" """) (string_content "g") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (} "}")))) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" (identifier "printf") (argument_list "("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17)" (( "(") (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" (" """) (string_content "    %-6lx  %s,%-10s  %.*s") (escape_sequence "\n") (" """)) (, ",") (identifier "lVar16") (, ",") (identifier "uVar12") (, ",") (identifier "uVar11") (, ",") (binary_expression "uVar18 & 0xffffffff" (identifier "uVar18") (& "&") (number_literal "0xffffffff")) (, ",") (identifier "pcVar17") () ")"))) (; ";")) (expression_statement "pcVar8 = pcVar17;" (assignment_expression "pcVar8 = pcVar17" (identifier "pcVar8") (= "=") (identifier "pcVar17")) (; ";")) (} "}")))) (expression_statement "sVar13 = strnlen(pcVar8,uVar18);" (assignment_expression "sVar13 = strnlen(pcVar8,uVar18)" (identifier "sVar13") (= "=") (call_expression "strnlen(pcVar8,uVar18)" (identifier "strnlen") (argument_list "(pcVar8,uVar18)" (( "(") (identifier "pcVar8") (, ",") (identifier "uVar18") () ")")))) (; ";")) (expression_statement "pcVar17 = pcVar8 + sVar13 + 1;" (assignment_expression "pcVar17 = pcVar8 + sVar13 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar8 + sVar13 + 1" (binary_expression "pcVar8 + sVar13" (identifier "pcVar8") (+ "+") (identifier "sVar13")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar17 < pcVar15)" (( "(") (binary_expression "pcVar17 < pcVar15" (identifier "pcVar17") (< "<") (identifier "pcVar15")) () ")")) (; ";")) (} "}")) (else_clause "else if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" (else "else") (if_statement "if (DAT_00157488 == 0) {\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" (if "if") (parenthesized_expression "(DAT_00157488 == 0)" (( "(") (binary_expression "DAT_00157488 == 0" (identifier "DAT_00157488") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn();\n      DAT_00157488 = 1;\n    }" ({ "{") (expression_statement "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (call_expression "dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" (identifier "dcgettext") (argument_list "(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Only DWARF 2 and 3 pubnames are currently supported\n"" (" """) (string_content "Only DWARF 2 and 3 pubnames are currently supported") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "warn();" (call_expression "warn()" (identifier "warn") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00157488 = 1;" (assignment_expression "DAT_00157488 = 1" (identifier "DAT_00157488") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

int function_1(type_1 *section,void *file,int var_25)

{
  int var_8;
  type_2 var_24;
  type_3 var_15;
  type_3 uVar4;
  type_4 var_16;
  char *pcVar6;
  type_5 var_7;
  type_6 var_21;
  type_6 *var_22;
  char *pcVar10;
  long var_26;
  type_7 uVar12;
  type_7 uVar13;
  size_t var_29;
  type_5 var_19;
  char *message;
  type_1 *section_1;
  type_8 *var_4;
  type_8 *var_6;
  int var_9;
  type_8 *var_17;
  type_4 var_10;
  type_8 *var_1;
  type_3 var_18;
  type_4 local_58;
  
  var_1 = section->start;
  var_4 = var_1 + section->size;
  var_2(file);
  var_3((type_1 *)section->name,(int)section + 0x18,section_1);
  do {
    if (var_4 <= var_1) {
LAB_00125613:
      var_5(10);
      return 1;
    }
    var_6 = var_1 + 4;
    var_8 = (int)var_4;
    if (var_6 < var_4) {
      var_9 = 4;
LAB_0012523e:
      var_7 = (*byte_get)(var_1,var_9);
      if (var_7 == 0xffffffff) {
        var_1 = var_1 + 0xc;
        if (var_1 < var_4) {
          var_9 = 8;
        }
        else if ((var_4 <= var_6) || (var_9 = var_8 - (int)var_6, 7 < var_9 - 1U)) {
          var_18 = 8;
          var_15 = 0xc;
          var_6 = var_1;
          goto LAB_001250d0;
        }
        var_15 = 0xc;
        var_7 = (*byte_get)(var_6,var_9);
        var_18 = 8;
        var_6 = var_1;
      }
      else {
        var_15 = 4;
        var_18 = 4;
      }
      var_10 = (long)var_6 - (long)section->start;
      var_16 = var_10 + var_7;
      if (!var_11(var_10,var_7)) goto LAB_001250e2;
LAB_001255ca:
      pcVar10 = var_12("x",var_7,0);
      pcVar6 = section->name;
      message = (char *)var_13(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      var_14(message,pcVar6,var_10 - var_15,pcVar10);
      goto LAB_00125613;
    }
    var_9 = var_8 - (int)var_1;
    if (var_9 - 1U < 8) goto LAB_0012523e;
    var_18 = 4;
    var_15 = 4;
LAB_001250d0:
    var_7 = 0;
    var_16 = (long)var_6 - (long)section->start;
    var_10 = var_16;
LAB_001250e2:
    if (section->size < var_16) goto LAB_001255ca;
    var_1 = var_6 + var_7;
    var_17 = var_6 + 2;
    var_15 = var_18;
    if (var_17 < var_4) {
      var_19 = (*byte_get)(var_6,2);
      uVar4 = (type_3)var_19;
      var_6 = var_17 + var_18;
      if (var_4 <= var_6) {
        var_24 = (short)var_19 - 2;
        var_15 = var_8 - (int)var_17;
        local_58 = var_19 & 0xffff;
        if (var_15 - 1 < 8) goto LAB_001252cb;
        goto LAB_00125146;
      }
LAB_001252b8:
      local_58 = (type_4)uVar4 & 0xffffffff0000ffff;
      var_24 = (short)uVar4 - 2;
LAB_001252cb:
      var_21 = (*byte_get)(var_17,var_15);
    }
    else {
      if ((var_6 < var_4) && (var_9 = var_8 - (int)var_6, var_9 - 1U < 8)) {
        var_19 = (*byte_get)(var_6,var_9);
        uVar4 = (type_3)var_19;
        var_6 = var_17 + var_18;
        if (var_6 < var_4) goto LAB_001252b8;
        var_24 = (short)var_19 - 2;
        local_58 = var_19 & 0xffff;
      }
      else {
        local_58 = 0;
        var_24 = 0xfffe;
        var_6 = var_17 + var_18;
        if (var_6 < var_4) goto LAB_001252cb;
      }
LAB_00125146:
      var_21 = 0;
    }
    if (var_20 - 1 < 0xfffffffe) {
      var_22 = &debug_information->cu_offset;
      do {
        if (var_21 == *var_22) goto LAB_00125158;
        var_22 = var_22 + 0xd;
      } while (&debug_information[(type_4)(var_20 - 1) + 1].cu_offset != var_22);
      pcVar6 = section->name;
      pcVar10 = (char *)var_13(0,
                                  ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                  ,5);
      var_14(pcVar10,var_21,pcVar6);
    }
LAB_00125158:
    var_17 = var_6 + var_18;
    var_15 = var_18;
    if ((var_17 < var_4) ||
       ((var_19 = 0, var_6 < var_4 && (var_15 = var_8 - (int)var_6, var_15 - 1 < 8)))) {
      var_19 = (*byte_get)(var_6,var_15);
    }
    pcVar6 = (char *)var_13(0,"  Length:                              %ld\n",5);
    var_23(pcVar6,var_7);
    pcVar6 = (char *)var_13(0,"  Version:                             %d\n",5);
    var_23(pcVar6,local_58);
    pcVar6 = (char *)var_13(0,"  Offset into .debug_info section:     0x%lx\n",5);
    var_23(pcVar6,var_21);
    pcVar6 = (char *)var_13(0,"  Size of area in .debug_info section: %ld\n",5);
    var_23(pcVar6,var_19);
    if (var_24 < 2) {
      pcVar6 = "\n    Offset  Kind          Name\n";
      if (var_25 == 0) {
        pcVar6 = "\n    Offset\tName\n";
      }
      pcVar6 = (char *)var_13(0,pcVar6,5);
      var_23(pcVar6);
      do {
        var_6 = var_17 + var_18;
        if (var_4 <= var_6) {
          if ((var_17 < var_4) && (var_8 = var_8 - (int)var_17, var_8 - 1U < 8)) {
            (*byte_get)(var_17,var_8);
          }
          break;
        }
        var_7 = (*byte_get)(var_17,var_18);
        if (var_7 == 0) break;
        var_26 = (long)var_4 - (long)var_6;
        if (var_25 == 0) {
          var_10 = var_26 - 1;
          var_23("    %-6lx\t%.*s\n",var_7,var_10 & 0xffffffff,var_6);
        }
        else {
          var_10 = var_26 - 2;
          var_17 = var_6 + 1;
          var_9 = var_25;
          if ((var_17 < var_4) || (var_9 = (int)var_26, var_9 - 1U < 8)) {
            var_19 = (*byte_get)(var_6,var_9);
            var_15 = (int)var_19 << 0x18;
            uVar12 = var_13(0,*(type_7 *)(var_27 + (type_4)(var_15 >> 0x1c & 7) * 8),5);
            if (-1 < (int)var_15) goto LAB_0012547a;
            uVar13 = var_13(0,"s",5);
          }
          else {
            uVar12 = var_13(0,"no info",5);
LAB_0012547a:
            uVar13 = var_13(0,"g",5);
          }
          var_23("    %-6lx  %s,%-10s  %.*s\n",var_7,uVar13,uVar12,var_10 & 0xffffffff,var_17);
          var_6 = var_17;
        }
        var_29 = var_28((char *)var_6,var_10);
        var_17 = var_6 + var_29 + 1;
      } while (var_17 < var_4);
    }
    else if (function_1::lexical_block_6::lexical_block_6_9::warned == 0) {
      pcVar6 = (char *)var_13(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      var_14(pcVar6);
      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 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)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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 (call_expression function: (identifier) arguments: (argument_list (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))))) (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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (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))) (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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (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))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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) (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) (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)))) (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)))) (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) (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)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (break_statement))) (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal))) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal)))))) alternative: (else_clause (compound_statement (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (true))))))

undefined8 MASKED(long param_1,undefined8 param_2,uint param_3)

{
  int iVar1;
  uint uVar2;
  ushort uVar3;
  ushort uVar4;
  uint uVar5;
  int iVar6;
  ulong uVar7;
  char *pcVar8;
  ulong uVar9;
  long *plVar10;
  undefined8 uVar11;
  undefined8 uVar12;
  size_t sVar13;
  undefined8 uVar14;
  char *pcVar15;
  long lVar16;
  char *pcVar17;
  ulong uVar18;
  char *pcVar19;
  uint local_64;
  
  pcVar19 = *(char **)(param_1 + 0x20);
  pcVar15 = pcVar19 + *(long *)(param_1 + 0x30);
  FUN_00122790(param_2);
  FUN_00110740(*(undefined8 *)(param_1 + 0x10),param_1 + 0x18);
  do {
    if (pcVar15 <= pcVar19) {
LAB_00125613:
      putchar(10);
      return 1;
    }
    pcVar8 = pcVar19 + 4;
    if (pcVar8 < pcVar15) {
      lVar16 = 4;
LAB_0012523e:
      uVar9 = (*DAT_00159e20)(pcVar19,lVar16);
      if (uVar9 == 0xffffffff) {
        pcVar19 = pcVar19 + 0xc;
        if (pcVar19 < pcVar15) {
          lVar16 = 8;
        }
        else if ((pcVar15 <= pcVar8) ||
                (lVar16 = (long)pcVar15 - (long)pcVar8, 7 < (int)lVar16 - 1U)) {
          local_64 = 8;
          uVar5 = 0xc;
          pcVar8 = pcVar19;
          goto LAB_001250d0;
        }
        uVar5 = 0xc;
        uVar9 = (*DAT_00159e20)(pcVar8,lVar16);
        local_64 = 8;
        pcVar8 = pcVar19;
      }
      else {
        uVar5 = 4;
        local_64 = 4;
      }
      uVar18 = (long)pcVar8 - *(long *)(param_1 + 0x20);
      uVar7 = uVar18 + uVar9;
      if (!CARRY8(uVar18,uVar9)) goto LAB_001250e2;
LAB_001255ca:
      uVar12 = FUN_0010ebb0("x",uVar9,0);
      uVar11 = *(undefined8 *)(param_1 + 0x10);
      uVar14 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar14,uVar11,uVar18 - uVar5,uVar12);
      goto LAB_00125613;
    }
    lVar16 = (long)pcVar15 - (long)pcVar19;
    if ((int)lVar16 - 1U < 8) goto LAB_0012523e;
    local_64 = 4;
    uVar5 = 4;
LAB_001250d0:
    uVar9 = 0;
    uVar7 = (long)pcVar8 - *(long *)(param_1 + 0x20);
    uVar18 = uVar7;
LAB_001250e2:
    if (*(ulong *)(param_1 + 0x30) < uVar7) goto LAB_001255ca;
    pcVar19 = pcVar8 + uVar9;
    pcVar17 = pcVar8 + 2;
    iVar1 = (int)pcVar15;
    uVar5 = local_64;
    if (pcVar17 < pcVar15) {
      uVar3 = (*DAT_00159e20)(pcVar8,2);
      pcVar8 = pcVar17 + local_64;
      if (pcVar15 <= pcVar8) {
        uVar4 = uVar3 - 2;
        uVar5 = iVar1 - (int)pcVar17;
        uVar2 = (uint)uVar3;
        if (uVar5 - 1 < 8) goto LAB_001252cb;
        goto LAB_00125146;
      }
LAB_001252b8:
      uVar2 = (uint)uVar3;
      uVar4 = uVar3 - 2;
LAB_001252cb:
      lVar16 = (*DAT_00159e20)(pcVar17,uVar5);
    }
    else {
      if ((pcVar8 < pcVar15) && ((iVar1 - (int)pcVar8) - 1U < 8)) {
        uVar3 = (*DAT_00159e20)(pcVar8);
        pcVar8 = pcVar17 + local_64;
        if (pcVar8 < pcVar15) goto LAB_001252b8;
        uVar4 = uVar3 - 2;
        uVar2 = (uint)uVar3;
      }
      else {
        uVar2 = 0;
        uVar4 = 0xfffe;
        pcVar8 = pcVar17 + local_64;
        if (pcVar8 < pcVar15) goto LAB_001252cb;
      }
LAB_00125146:
      lVar16 = 0;
    }
    if (DAT_00159bd4 - 1U < 0xfffffffe) {
      plVar10 = (long *)(DAT_00159bc8 + 0x10);
      do {
        if (lVar16 == *plVar10) goto LAB_00125158;
        plVar10 = plVar10 + 0xd;
      } while ((long *)(DAT_00159bc8 + 0x78 + (ulong)(DAT_00159bd4 - 1U) * 0x68) != plVar10);
      uVar11 = *(undefined8 *)(param_1 + 0x10);
      uVar12 = dcgettext(0,
                         ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                         ,5);
      warn(uVar12,lVar16,uVar11);
    }
LAB_00125158:
    pcVar17 = pcVar8 + local_64;
    uVar5 = local_64;
    if ((pcVar17 < pcVar15) ||
       ((uVar11 = 0, pcVar8 < pcVar15 && (uVar5 = iVar1 - (int)pcVar8, uVar5 - 1 < 8)))) {
      uVar11 = (*DAT_00159e20)(pcVar8,uVar5);
    }
    pcVar8 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar8,uVar9);
    pcVar8 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar8,uVar2);
    pcVar8 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar8,lVar16);
    pcVar8 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar8,uVar11);
    if (uVar4 < 2) {
      pcVar8 = "\n    Offset  Kind          Name\n";
      if (param_3 == 0) {
        pcVar8 = "\n    Offset\tName\n";
      }
      pcVar8 = (char *)dcgettext(0,pcVar8,5);
      printf(pcVar8);
      do {
        pcVar8 = pcVar17 + local_64;
        if (pcVar15 <= pcVar8) {
          if ((pcVar17 < pcVar15) && ((iVar1 - (int)pcVar17) - 1U < 8)) {
            (*DAT_00159e20)();
          }
          break;
        }
        lVar16 = (*DAT_00159e20)(pcVar17,local_64);
        if (lVar16 == 0) break;
        uVar9 = (long)pcVar15 - (long)pcVar8;
        if (param_3 == 0) {
          uVar18 = uVar9 - 1;
          printf("    %-6lx\t%.*s\n",lVar16,uVar18 & 0xffffffff,pcVar8);
        }
        else {
          uVar18 = uVar9 - 2;
          pcVar17 = pcVar8 + 1;
          if (pcVar17 < pcVar15) {
            uVar9 = (ulong)param_3;
LAB_001254d4:
            iVar6 = (*DAT_00159e20)(pcVar8,uVar9);
            uVar11 = dcgettext(0,(&PTR_s_no_info_001533c0)[(uint)(iVar6 << 0x18) >> 0x1c & 7],5);
            if (-1 < iVar6 << 0x18) goto LAB_0012547a;
            uVar12 = dcgettext(0,"s",5);
          }
          else {
            if ((int)uVar9 - 1U < 8) {
              uVar9 = uVar9 & 0xffffffff;
              goto LAB_001254d4;
            }
            uVar11 = dcgettext(0,"no info",5);
LAB_0012547a:
            uVar12 = dcgettext(0,"g",5);
          }
          printf("    %-6lx  %s,%-10s  %.*s\n",lVar16,uVar12,uVar11,uVar18 & 0xffffffff,pcVar17);
          pcVar8 = pcVar17;
        }
        sVar13 = strnlen(pcVar8,uVar18);
        pcVar17 = pcVar8 + sVar13 + 1;
      } while (pcVar17 < pcVar15);
    }
    else if (DAT_00157488 == 0) {
      dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn();
      DAT_00157488 = 1;
    }
  } while( true );
}

