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

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

{
  uint uVar1;
  char *pcVar2;
  uchar *puVar3;
  uchar *puVar4;
  char *pcVar5;
  int iVar6;
  undefined4 uVar7;
  size_t sVar8;
  int iVar9;
  char *message;
  dwarf_section *section_1;
  dwarf_vma *pdVar10;
  uchar *puVar11;
  uchar *puVar12;
  uint uVar13;
  uint uVar14;
  elf_vma eVar15;
  elf_vma eVar16;
  char *in_stack_ffffffa8;
  void *in_stack_ffffffb4;
  uchar *local_48;
  undefined8 local_44;
  uchar *local_3c;
  int local_38;
  uint local_28;
  uint local_24;
  ushort local_1e;
  
  puVar11 = section->start;
  puVar12 = puVar11 + (int)section->size;
  load_debug_info(in_stack_ffffffb4);
  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1);
  do {
    if (puVar12 <= puVar11) {
LAB_000339a9:
      putchar(10);
      return 1;
    }
    local_3c = puVar11 + 4;
    if (local_3c < puVar12) {
      puVar3 = (uchar *)0x4;
LAB_0003357a:
      local_44 = (*byte_get)(puVar11,(int)puVar3);
      if (local_44 == 0xffffffff) {
        puVar11 = puVar11 + 0xc;
        if (puVar11 < puVar12) {
          puVar4 = (uchar *)0x8;
        }
        else if ((puVar12 <= local_3c) ||
                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {
          local_38 = 0xc;
          local_48 = (uchar *)0x8;
          local_3c = puVar11;
          goto LAB_000333e8;
        }
        local_44 = (*byte_get)(local_3c,(int)puVar4);
        local_38 = 0xc;
        local_48 = (uchar *)0x8;
        puVar3 = puVar4;
        local_3c = puVar11;
      }
      else {
        local_38 = 4;
        local_48 = (uchar *)0x4;
      }
      local_28 = (int)local_3c - (int)section->start;
      uVar13 = (uint)local_44 + local_28;
      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);
      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;
LAB_00033961:
      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);
      pcVar2 = section->name;
      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(message,pcVar2,local_28 - local_38,pcVar5);
      goto LAB_000339a9;
    }
    puVar3 = puVar12 + -(int)puVar11;
    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;
    local_38 = 4;
    local_48 = (uchar *)0x4;
    puVar3 = (uchar *)in_stack_ffffffa8;
LAB_000333e8:
    local_44 = 0;
    uVar13 = (int)local_3c - (int)section->start;
    uVar14 = 0;
    local_28 = uVar13;
LAB_0003340b:
    uVar1 = *(uint *)((int)&section->size + 4);
    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;
    puVar3 = local_3c + 2;
    puVar11 = local_3c + (uint)local_44;
    puVar4 = local_48;
    if (puVar3 < puVar12) {
      eVar15 = (*byte_get)(local_3c,2);
      uVar13 = (uint)eVar15;
      if (puVar3 + (int)local_48 < puVar12) {
LAB_000338c0:
        local_24 = uVar13 & 0xffff;
        local_1e = (short)uVar13 - 2;
      }
      else {
        local_24 = uVar13 & 0xffff;
        local_1e = (short)eVar15 - 2;
        puVar4 = puVar12 + -(int)puVar3;
        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;
      }
LAB_00033478:
      eVar15 = (*byte_get)(puVar3,(int)puVar4);
      local_28 = (uint)eVar15;
    }
    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {
      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);
      uVar13 = (uint)eVar15;
      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;
      local_24 = uVar13 & 0xffff;
      local_1e = (short)eVar15 - 2;
      local_28 = 0;
    }
    else {
      local_24 = 0;
      local_1e = 0xfffe;
      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;
LAB_00033660:
      local_28 = 0;
    }
    if (num_debug_info_entries - 1 < 0xfffffffe) {
      uVar13 = 0;
      pdVar10 = &debug_information->cu_offset;
      do {
        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;
        uVar13 = uVar13 + 1;
        pdVar10 = pdVar10 + 10;
      } while (num_debug_info_entries != uVar13);
      pcVar2 = section->name;
      pcVar5 = (char *)dcgettext(0,
                                 ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                 ,5);
      warn(pcVar5,local_28,pcVar2);
    }
LAB_00033498:
    local_3c = puVar3 + (int)local_48;
    puVar3 = local_3c + (int)local_48;
    puVar4 = local_48;
    if ((puVar3 < puVar12) ||
       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&
        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {
      eVar15 = (*byte_get)(local_3c,(int)puVar4);
      in_stack_ffffffa8 = (char *)eVar15;
    }
    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar2,(uint)local_44);
    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar2,local_24);
    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar2,local_28);
    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar2);
    if (local_1e < 2) {
      if (is_gnu == 0) {
        in_stack_ffffffa8 = "\n    Offset\tName\n";
      }
      else {
        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";
      }
      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);
      printf(pcVar2);
      do {
        puVar4 = puVar3 + (int)local_48;
        if (puVar12 <= puVar4) {
          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {
            (*byte_get)(puVar3,(int)puVar4);
            in_stack_ffffffa8 = (char *)puVar4;
          }
          break;
        }
        in_stack_ffffffa8 = (char *)local_48;
        eVar15 = (*byte_get)(puVar3,(int)local_48);
        if (eVar15 == 0) break;
        iVar6 = (int)puVar12 - (int)puVar4;
        if (is_gnu == 0) {
          in_stack_ffffffa8 = (char *)(iVar6 + -1);
          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);
        }
        else {
          puVar3 = puVar4 + 1;
          in_stack_ffffffa8 = (char *)(iVar6 + -2);
          iVar9 = is_gnu;
          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {
            eVar16 = (*byte_get)(puVar4,iVar9);
            uVar13 = (int)eVar16 << 0x18;
            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),
                                          5);
            if (-1 < (int)uVar13) goto LAB_000337b4;
            pcVar2 = "s";
          }
          else {
            local_3c = (uchar *)dcgettext(0,"no info",5);
LAB_000337b4:
            pcVar2 = "g";
          }
          uVar7 = dcgettext(0,pcVar2,5);
          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);
          puVar4 = puVar3;
        }
        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);
        puVar3 = puVar4 + sVar8 + 1;
      } while (puVar3 < puVar12);
    }
    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {
      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";
      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn(pcVar2);
      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;
    }
  } while( true );
}



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

undefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)

{
  ulonglong uVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  size_t sVar5;
  int iVar6;
  undefined4 uVar7;
  int *piVar8;
  undefined4 uVar9;
  char *pcVar10;
  char *pcVar11;
  uint uVar12;
  char *pcVar13;
  longlong lVar14;
  int local_48;
  int local_44;
  char *local_3c;
  int local_38;
  uint local_28;
  uint local_24;
  ushort local_1e;
  
  pcVar10 = *(char **)(param_1 + 0x10);
  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);
  FUN_00030680();
  FUN_0001cea0();
  do {
    if (pcVar11 <= pcVar10) {
LAB_000339a9:
      putchar(10);
      return 1;
    }
    local_3c = pcVar10 + 4;
    if (local_3c < pcVar11) {
      iVar3 = 4;
LAB_0003357a:
      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);
      if (lVar14 == 0xffffffff) {
        pcVar10 = pcVar10 + 0xc;
        if (pcVar10 < pcVar11) {
          iVar3 = 8;
        }
        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {
          local_38 = 0xc;
          local_48 = 8;
          local_3c = pcVar10;
          goto LAB_000333e8;
        }
        lVar14 = (*DAT_00073aec)(local_3c,iVar3);
        local_38 = 0xc;
        local_48 = 8;
        local_3c = pcVar10;
      }
      else {
        local_38 = 4;
        local_48 = 4;
      }
      local_44 = (int)lVar14;
      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);
      uVar1 = lVar14 + (ulonglong)local_28;
      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;
LAB_00033961:
      uVar4 = FUN_0001aec0(0);
      uVar9 = *(undefined4 *)(param_1 + 8);
      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar7,uVar9,local_28 - local_38,uVar4);
      goto LAB_000339a9;
    }
    iVar3 = (int)pcVar11 - (int)pcVar10;
    if (iVar3 - 1U < 8) goto LAB_0003357a;
    local_38 = 4;
    local_48 = 4;
LAB_000333e8:
    local_44 = 0;
    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);
    uVar1 = (ulonglong)local_28;
LAB_0003340b:
    uVar12 = (uint)(uVar1 >> 0x20);
    if (*(uint *)(param_1 + 0x20) < uVar12 ||
        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))
    goto LAB_00033961;
    pcVar13 = local_3c + 2;
    pcVar10 = local_3c + local_44;
    iVar3 = local_48;
    if (pcVar13 < pcVar11) {
      local_1e = (*DAT_00073aec)(local_3c,2);
      if (pcVar13 + local_48 < pcVar11) {
LAB_000338c0:
        local_24 = (uint)local_1e;
        local_1e = local_1e - 2;
      }
      else {
        local_24 = (uint)local_1e;
        local_1e = local_1e - 2;
        iVar3 = (int)pcVar11 - (int)pcVar13;
        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;
      }
LAB_00033478:
      local_28 = (*DAT_00073aec)(pcVar13,iVar3);
    }
    else if (local_3c < pcVar11) {
      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;
      if (7 < uVar12) goto LAB_0003344a;
      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);
      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;
      local_24 = (uint)local_1e;
      local_1e = local_1e - 2;
      local_28 = 0;
    }
    else {
LAB_0003344a:
      local_24 = 0;
      local_1e = 0xfffe;
      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;
LAB_00033660:
      local_28 = 0;
    }
    if (DAT_00073928 - 1U < 0xfffffffe) {
      iVar3 = 0;
      piVar8 = (int *)(DAT_00073920 + 0xc);
      do {
        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;
        iVar3 = iVar3 + 1;
        piVar8 = piVar8 + 0x14;
      } while (DAT_00073928 != iVar3);
      uVar9 = *(undefined4 *)(param_1 + 8);
      uVar4 = dcgettext(0,
                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                        ,5);
      warn(uVar4,local_28,uVar9);
    }
LAB_00033498:
    local_3c = pcVar13 + local_48;
    pcVar13 = local_3c + local_48;
    iVar3 = local_48;
    if ((pcVar13 < pcVar11) ||
       ((uVar9 = 0, local_3c < pcVar11 &&
        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {
      uVar9 = (*DAT_00073aec)(local_3c,iVar3);
    }
    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar2,local_44);
    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar2,local_24);
    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar2,local_28);
    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar2,uVar9);
    if (local_1e < 2) {
      if (param_3 == 0) {
        pcVar2 = "\n    Offset\tName\n";
      }
      else {
        pcVar2 = "\n    Offset  Kind          Name\n";
      }
      pcVar2 = (char *)dcgettext(0,pcVar2,5);
      printf(pcVar2);
      do {
        pcVar2 = pcVar13 + local_48;
        if (pcVar11 <= pcVar2) {
          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {
            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);
          }
          break;
        }
        lVar14 = (*DAT_00073aec)(pcVar13,local_48);
        if (lVar14 == 0) break;
        iVar3 = (int)pcVar11 - (int)pcVar2;
        if (param_3 == 0) {
          sVar5 = iVar3 - 1;
          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);
        }
        else {
          pcVar13 = pcVar2 + 1;
          sVar5 = iVar3 - 2;
          iVar6 = param_3;
          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {
            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);
            local_3c = (char *)dcgettext(0,*(undefined4 *)
                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4
                                            ),5);
            if (-1 < iVar3 << 0x18) goto LAB_000337b4;
            pcVar2 = "s";
          }
          else {
            local_3c = (char *)dcgettext(0,"no info",5);
LAB_000337b4:
            pcVar2 = "g";
          }
          uVar9 = dcgettext(0,pcVar2,5);
          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);
          pcVar2 = pcVar13;
        }
        sVar5 = strnlen(pcVar2,sVar5);
        pcVar13 = pcVar2 + sVar5 + 1;
      } while (pcVar13 < pcVar11);
    }
    else if (DAT_00071204 == 0) {
      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn(uVar9);
      DAT_00071204 = 1;
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x000143a0
ADD EBX,0x3cc85
SUB ESP,0x3c
MOV EBP,dword ptr [ESI + 0x10]
MOV EDI,dword ptr [ESI + 0x1c]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,EDX
MOV dword ptr [ESP + 0x18],ECX
ADD EDI,EBP
MOV dword ptr [ESP + 0x14],EBP
CALL 0x00030680
MOV EAX,dword ptr [ESI + 0x8]
LEA EDX,[ESI + 0xc]
CALL 0x0001cea0
LEA EAX,[EBX + 0x3aec]
MOV dword ptr [ESP + 0x1c],EAX
CMP EBP,EDI
JNC 0x000339a9
MOV EBP,EDI
JMP 0x00033562
MOV EAX,EBP
SUB EAX,ESI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x0003357a
MOV dword ptr [ESP + 0x14],0x4
MOV dword ptr [ESP + 0x4],0x4
MOV EAX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0x0
SUB EDI,dword ptr [EAX + 0x10]
MOV dword ptr [ESP + 0x24],EDI
MOV ESI,EDI
XOR EDI,EDI
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [EAX + 0x20]
CMP dword ptr [EAX + 0x1c],ESI
SBB ECX,EDI
JC 0x00033961
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x8]
LEA EDI,[EDX + 0x2]
ADD EAX,EDX
MOV dword ptr [ESP + 0x14],EAX
CMP EDI,EBP
JC 0x00033610
CMP EBP,EDX
JBE 0x0003344a
MOV EAX,EBP
SUB EAX,EDX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x0003388c
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,0xfffffffe
MOV dword ptr [ESP + 0x28],0x0
MOV word ptr [ESP + 0x2e],CX
ADD EAX,EDI
MOV dword ptr [ESP + 0x10],EAX
CMP EAX,EBP
JNC 0x00033660
LEA ECX,[EBX + 0x3aec]
MOV EAX,dword ptr [ESP + 0x4]
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL dword ptr [ECX]
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
MOV EDI,dword ptr [EBX + 0x3928]
LEA EDX,[EDI + -0x1]
CMP EDX,-0x3
JBE 0x0003367c
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x4]
ADD EDI,EAX
CMP EDI,EBP
JC 0x000335f0
XOR ESI,ESI
CMP EBP,EAX
JBE 0x000334c2
MOV EDX,EBP
SUB EDX,EAX
MOV EAX,EDX
LEA EDX,[EDX + -0x1]
CMP EDX,0x7
JBE 0x000335f4
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe02b8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x000130b0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffe02e4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x30]
PUSH EAX
CALL 0x000130b0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffe0310]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x000130b0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffe0340]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000130b0
ADD ESP,0x10
CMP word ptr [ESP + 0x2e],0x1
JBE 0x000336e0
MOV EAX,dword ptr [EBX + 0x1204]
TEST EAX,EAX
JZ 0x000338d8
CMP EBP,dword ptr [ESP + 0x14]
JBE 0x000339a9
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[ESI + 0x4]
MOV dword ptr [ESP + 0x10],EAX
CMP EAX,EBP
JNC 0x000333c8
MOV EAX,0x4
SUB ESP,0x8
LEA ECX,[EBX + 0x3aec]
PUSH EAX
MOV ESI,dword ptr [ESP + 0x20]
PUSH ESI
MOV dword ptr [ESP + 0x14],ECX
CALL dword ptr [ECX]
MOV ECX,EDX
MOV dword ptr [ESP + 0x18],EAX
NOT EAX
MOV EDX,ECX
MOV dword ptr [ESP + 0x1c],ECX
ADD ESP,0x10
OR EDX,EAX
JNZ 0x000339c0
ADD ESI,0xc
MOV ECX,dword ptr [ESP + 0x4]
CMP ESI,EBP
MOV EDI,ESI
JC 0x00033908
MOV ESI,dword ptr [ESP + 0x10]
CMP ESI,EBP
JNC 0x000335d1
MOV EAX,EBP
SUB EAX,ESI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x0003390d
MOV dword ptr [ESP + 0x10],EDI
MOV dword ptr [ESP + 0x14],0xc
MOV dword ptr [ESP + 0x4],0x8
JMP 0x000333e8
MOV EAX,dword ptr [ESP + 0x4]
SUB ESP,0x8
LEA ECX,[EBX + 0x3aec]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL dword ptr [ECX]
MOV ESI,EAX
ADD ESP,0x10
JMP 0x000334c2
SUB ESP,0x8
LEA ECX,[EBX + 0x3aec]
PUSH 0x2
PUSH dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x34],ECX
CALL dword ptr [ECX]
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,EAX
LEA ESI,[EDI + ECX*0x1]
MOV dword ptr [ESP + 0x20],ESI
ADD ESP,0x10
CMP ESI,EBP
MOV ECX,dword ptr [ESP + 0x24]
JC 0x000338c0
MOVZX EDX,AX
SUB EAX,0x2
MOV word ptr [ESP + 0x2e],AX
MOV EAX,EBP
SUB EAX,EDI
MOV dword ptr [ESP + 0x28],EDX
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00033478
MOV EDI,dword ptr [EBX + 0x3928]
MOV dword ptr [ESP + 0x24],0x0
XOR EAX,EAX
LEA EDX,[EDI + -0x1]
CMP EDX,-0x3
JA 0x00033498
MOV EDX,dword ptr [EBX + 0x3920]
XOR ECX,ECX
ADD EDX,0xc
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [EDX]
XOR ESI,EAX
OR ESI,dword ptr [EDX + 0x4]
JZ 0x00033498
ADD ECX,0x1
ADD EDX,0x50
CMP EDI,ECX
JNZ 0x00033690
MOV EAX,dword ptr [ESP + 0x20]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffe03c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x00046500
ADD ESP,0x10
JMP 0x00033498
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x000339d8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe03a4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
MOV dword ptr [ESP],EAX
CALL 0x000130b0
ADD ESP,0x10
LEA EAX,[EBX + 0xfffe2242]
MOV dword ptr [ESP + 0x24],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x4]
LEA ECX,[EDI + EAX*0x1]
CMP ECX,EBP
MOV dword ptr [ESP + 0x10],ECX
JC 0x00033758
CMP EDI,EBP
JNC 0x00033558
MOV EAX,EBP
SUB EAX,EDI
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JA 0x00033558
SUB ESP,0x8
LEA ECX,[EBX + 0x3aec]
PUSH EAX
PUSH EDI
CALL dword ptr [ECX]
ADD ESP,0x10
JMP 0x00033558
SUB ESP,0x8
PUSH EAX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x2c]
CALL dword ptr [EAX]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
OR EDX,EAX
JZ 0x00033558
MOV ECX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x18]
MOV EAX,EBP
SUB EAX,ECX
TEST ESI,ESI
JZ 0x00033868
LEA ESI,[ECX + 0x1]
LEA EDI,[EAX + -0x2]
CMP ESI,EBP
JC 0x00033810
LEA EDX,[EAX + -0x1]
CMP EDX,0x7
JBE 0x00033814
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2252]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
ADD ESP,0x10
MOV ECX,EAX
MOV dword ptr [ESP + 0x10],ECX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe7229]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
SUB ESP,0x8
PUSH ESI
PUSH EDI
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfffe2227]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x000130b0
ADD ESP,0x20
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x000135d0
ADD ESP,0x10
LEA EDI,[ESI + EAX*0x1 + 0x1]
CMP EBP,EDI
JA 0x00033718
JMP 0x00033558
MOV EAX,dword ptr [ESP + 0x18]
SUB ESP,0x8
PUSH EAX
PUSH ECX
MOV EAX,dword ptr [ESP + 0x2c]
CALL dword ptr [EAX]
ADD ESP,0xc
SHL EAX,0x18
PUSH 0x5
MOV dword ptr [ESP + 0x18],EAX
SHR EAX,0x1c
AND EAX,0x7
PUSH dword ptr [EBX + EAX*0x4 + 0xfffff2c0]
PUSH 0x0
CALL 0x000131f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,EAX
TEST EDX,EDX
JNS 0x000337b4
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe0da7]
PUSH 0x5
JMP 0x000337c3
PUSH ECX
LEA EDI,[EAX + -0x1]
MOV dword ptr [ESP + 0x14],ECX
PUSH EDI
PUSH dword ptr [ESP + 0x10]
PUSH dword ptr [ESP + 0x30]
CALL 0x000130b0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
MOV ESI,ECX
JMP 0x000337ec
PUSH EDX
LEA ECX,[EBX + 0x3aec]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x34],ECX
CALL dword ptr [ECX]
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,EAX
ADD ECX,EDI
MOV dword ptr [ESP + 0x20],ECX
ADD ESP,0x10
CMP EBP,ECX
JBE 0x000339e8
MOV ECX,dword ptr [ESP + 0x24]
LEA ESI,[ESI]
MOVZX EAX,DX
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EDX + -0x2]
MOV word ptr [ESP + 0x2e],AX
JMP 0x00033474
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe036c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
MOV dword ptr [ESP],EAX
CALL 0x00046500
ADD ESP,0x10
MOV dword ptr [EBX + 0x1204],0x1
JMP 0x00033558
MOV EAX,0x8
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL dword ptr [ECX]
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
ADD ESP,0x10
MOV dword ptr [ESP + 0x10],EDI
MOV dword ptr [ESP + 0x14],0xc
MOV dword ptr [ESP + 0x4],0x8
MOV EAX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ESP + 0x10]
XOR ECX,ECX
MOV ESI,dword ptr [ESP + 0x8]
SUB EDI,dword ptr [EAX + 0x10]
MOV EAX,EDI
MOV dword ptr [ESP + 0x24],EDI
MOV EDI,dword ptr [ESP + 0xc]
ADD ESI,EAX
ADC EDI,ECX
CMP ESI,EAX
MOV EAX,EDI
SBB EAX,ECX
JNC 0x0003340b
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0xc
LEA EAX,[EBX + 0xfffdc7d9]
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x0001aec0
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0xc
MOV EDI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xfffde278]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131f0
PUSH ESI
SUB EBP,dword ptr [ESP + 0x28]
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x00046500
ADD ESP,0x20
SUB ESP,0xc
PUSH 0xa
CALL 0x00013520
ADD ESP,0x4c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x14],0x4
MOV dword ptr [ESP + 0x4],0x4
JMP 0x00033936
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe2215]
PUSH 0x5
JMP 0x000336f7
MOVZX EDX,AX
SUB EAX,0x2
MOV dword ptr [ESP + 0x24],0x0
MOV word ptr [ESP + 0x2e],AX
XOR EAX,EAX
MOV dword ptr [ESP + 0x28],EDX
JMP 0x00033486
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)\n\n{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)\n\n{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00033370(int param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "longlong lVar14;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "ushort local_1e;" type_identifier identifier ;) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" identifier = (pointer_expression "*(char **)(param_1 + 0x10)" * (cast_expression "(char **)(param_1 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);" (assignment_expression "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c)" identifier = (binary_expression "pcVar10 + *(int *)(param_1 + 0x1c)" identifier + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "FUN_00030680();" (call_expression "FUN_00030680()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001cea0();" (call_expression "FUN_0001cea0()" identifier (argument_list "()" ( ))) ;) (do_statement "do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  }" { (if_statement "if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(pcVar11 <= pcVar10)" ( (binary_expression "pcVar11 <= pcVar10" identifier <= identifier) )) (compound_statement "{\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_000339a9:\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 "local_3c = pcVar10 + 4;" (assignment_expression "local_3c = pcVar10 + 4" identifier = (binary_expression "pcVar10 + 4" identifier + number_literal)) ;) (if_statement "if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" if (parenthesized_expression "(local_3c < pcVar11)" ( (binary_expression "local_3c < pcVar11" identifier < identifier) )) (compound_statement "{\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" statement_identifier : (expression_statement "lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar10,iVar3)" identifier = (call_expression "(*DAT_00073aec)(pcVar10,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar10,iVar3)" ( identifier , identifier )))) ;)) (if_statement "if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }" if (parenthesized_expression "(lVar14 == 0xffffffff)" ( (binary_expression "lVar14 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }" { (expression_statement "pcVar10 = pcVar10 + 0xc;" (assignment_expression "pcVar10 = pcVar10 + 0xc" identifier = (binary_expression "pcVar10 + 0xc" identifier + number_literal)) ;) (if_statement "if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "(pcVar10 < pcVar11)" ( (binary_expression "pcVar10 < pcVar11" identifier < identifier) )) (compound_statement "{\n          iVar3 = 8;\n        }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) }) (else_clause "else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" else (if_statement "if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U))" ( (binary_expression "(pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" (parenthesized_expression "(pcVar11 <= local_3c)" ( (binary_expression "pcVar11 <= local_3c" identifier <= identifier) )) || (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" ( (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" identifier = (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar3 - 1U" number_literal < (binary_expression "iVar3 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" { (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" identifier = number_literal) ;) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" identifier = identifier) ;) (goto_statement "goto LAB_000333e8;" goto statement_identifier ;) })))) (expression_statement "lVar14 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(local_3c,iVar3)" identifier = (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,iVar3)" ( identifier , identifier )))) ;) (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" identifier = number_literal) ;) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" identifier = identifier) ;) }) (else_clause "else {\n        local_38 = 4;\n        local_48 = 4;\n      }" else (compound_statement "{\n        local_38 = 4;\n        local_48 = 4;\n      }" { (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" identifier = number_literal) ;) }))) (expression_statement "local_44 = (int)lVar14;" (assignment_expression "local_44 = (int)lVar14" identifier = (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" identifier = (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = lVar14 + (ulonglong)local_28;" (assignment_expression "uVar1 = lVar14 + (ulonglong)local_28" identifier = (binary_expression "lVar14 + (ulonglong)local_28" identifier + (cast_expression "(ulonglong)local_28" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (if_statement "if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;" if (parenthesized_expression "((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20))" ( (binary_expression "(uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)" (call_expression "(uint)((uint)uVar1 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar1 < local_28)" ( (binary_expression "(uint)uVar1 < local_28" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) )) (goto_statement "goto LAB_0003340b;" goto statement_identifier ;)) (labeled_statement "LAB_00033961:\n      uVar4 = FUN_0001aec0(0);" statement_identifier : (expression_statement "uVar4 = FUN_0001aec0(0);" (assignment_expression "uVar4 = FUN_0001aec0(0)" identifier = (call_expression "FUN_0001aec0(0)" identifier (argument_list "(0)" ( number_literal )))) ;)) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar7 = 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(uVar7,uVar9,local_28 - local_38,uVar4);" (call_expression "warn(uVar7,uVar9,local_28 - local_38,uVar4)" identifier (argument_list "(uVar7,uVar9,local_28 - local_38,uVar4)" ( identifier , identifier , (binary_expression "local_28 - local_38" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_000339a9;" goto statement_identifier ;) })) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar10;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar10" identifier = (binary_expression "(int)pcVar11 - (int)pcVar10" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 - 1U < 8) goto LAB_0003357a;" if (parenthesized_expression "(iVar3 - 1U < 8)" ( (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0003357a;" goto statement_identifier ;)) (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" identifier = number_literal) ;) (labeled_statement "LAB_000333e8:\n    local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" identifier = (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (ulonglong)local_28;" (assignment_expression "uVar1 = (ulonglong)local_28" identifier = (cast_expression "(ulonglong)local_28" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);" statement_identifier : (expression_statement "uVar12 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;)) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" ( (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar1" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_00033961;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_3c + 2;" (assignment_expression "pcVar13 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "pcVar10 = local_3c + local_44;" (assignment_expression "pcVar10 = local_3c + local_44" identifier = (binary_expression "local_3c + local_44" identifier + identifier)) ;) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) (compound_statement "{\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }" { (expression_statement "local_1e = (*DAT_00073aec)(local_3c,2);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,2)" identifier = (call_expression "(*DAT_00073aec)(local_3c,2)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,2)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }" { (labeled_statement "LAB_000338c0:\n        local_24 = (uint)local_1e;" statement_identifier : (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) }) (else_clause "else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" else (compound_statement "{\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" { (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar13;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar13" identifier = (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;" if (parenthesized_expression "(7 < ((int)pcVar11 - (int)pcVar13) - 1U)" ( (binary_expression "7 < ((int)pcVar11 - (int)pcVar13) - 1U" number_literal < (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" ( (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal)) )) (goto_statement "goto LAB_00033660;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);" statement_identifier : (expression_statement "local_28 = (*DAT_00073aec)(pcVar13,iVar3);" (assignment_expression "local_28 = (*DAT_00073aec)(pcVar13,iVar3)" identifier = (call_expression "(*DAT_00073aec)(pcVar13,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,iVar3)" ( identifier , identifier )))) ;)) }) (else_clause "else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (if_statement "if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "(local_3c < pcVar11)" ( (binary_expression "local_3c < pcVar11" identifier < identifier) )) (compound_statement "{\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }" { (expression_statement "uVar12 = ((int)pcVar11 - (int)local_3c) - 1;" (assignment_expression "uVar12 = ((int)pcVar11 - (int)local_3c) - 1" identifier = (binary_expression "((int)pcVar11 - (int)local_3c) - 1" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" ( (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal)) ;) (if_statement "if (7 < uVar12) goto LAB_0003344a;" if (parenthesized_expression "(7 < uVar12)" ( (binary_expression "7 < uVar12" number_literal < identifier) )) (goto_statement "goto LAB_0003344a;" goto statement_identifier ;)) (expression_statement "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" identifier = (call_expression "(*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" ( identifier , (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (goto_statement "goto LAB_000338c0;" goto statement_identifier ;)) (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (compound_statement "{\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" { (labeled_statement "LAB_0003344a:\n      local_24 = 0;" statement_identifier : (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;)) (expression_statement "local_1e = 0xfffe;" (assignment_expression "local_1e = 0xfffe" identifier = number_literal) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00033478;" goto statement_identifier ;)) (labeled_statement "LAB_00033660:\n      local_28 = 0;" statement_identifier : (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;)) }))))) (if_statement "if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" if (parenthesized_expression "(DAT_00073928 - 1U < 0xfffffffe)" ( (binary_expression "DAT_00073928 - 1U < 0xfffffffe" (binary_expression "DAT_00073928 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)(DAT_00073920 + 0xc);" (assignment_expression "piVar8 = (int *)(DAT_00073920 + 0xc)" identifier = (cast_expression "(int *)(DAT_00073920 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00073920 + 0xc)" ( (binary_expression "DAT_00073920 + 0xc" identifier + number_literal) )))) ;) (do_statement "do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);" do (compound_statement "{\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      }" { (if_statement "if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;" if (parenthesized_expression "(*piVar8 == local_28 && piVar8[1] == 0)" ( (binary_expression "*piVar8 == local_28 && piVar8[1] == 0" (binary_expression "*piVar8 == local_28" (pointer_expression "*piVar8" * identifier) == identifier) && (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal)) )) (goto_statement "goto LAB_00033498;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar8 + 0x14;" (assignment_expression "piVar8 = piVar8 + 0x14" identifier = (binary_expression "piVar8 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00073928 != iVar3)" ( (binary_expression "DAT_00073928 != iVar3" identifier != identifier) )) ;) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);" (assignment_expression "uVar4 = 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(uVar4,local_28,uVar9);" (call_expression "warn(uVar4,local_28,uVar9)" identifier (argument_list "(uVar4,local_28,uVar9)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00033498:\n    local_3c = pcVar13 + local_48;" statement_identifier : (expression_statement "local_3c = pcVar13 + local_48;" (assignment_expression "local_3c = pcVar13 + local_48" identifier = (binary_expression "pcVar13 + local_48" identifier + identifier)) ;)) (expression_statement "pcVar13 = local_3c + local_48;" (assignment_expression "pcVar13 = local_3c + local_48" identifier = (binary_expression "local_3c + local_48" identifier + identifier)) ;) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" if (parenthesized_expression "((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))))" ( (binary_expression "(pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) || (parenthesized_expression "((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" ( (parenthesized_expression "(uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))" ( (comma_expression "uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (assignment_expression "uVar9 = 0" identifier = number_literal) , (binary_expression "local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (binary_expression "local_3c < pcVar11" identifier < identifier) && (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" ( (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" identifier = (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "((int)pcVar11 - (int)local_3c) - 1U < 8" (binary_expression "((int)pcVar11 - (int)local_3c) - 1U" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" ( (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal)) )))) )) ))) )) (compound_statement "{\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" { (expression_statement "uVar9 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "uVar9 = (*DAT_00073aec)(local_3c,iVar3)" identifier = (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,iVar3)" ( identifier , identifier )))) ;) })) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_44);" (call_expression "printf(pcVar2,local_44)" identifier (argument_list "(pcVar2,local_44)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_24);" (call_expression "printf(pcVar2,local_24)" identifier (argument_list "(pcVar2,local_24)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_28);" (call_expression "printf(pcVar2,local_28)" identifier (argument_list "(pcVar2,local_28)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,uVar9);" (call_expression "printf(pcVar2,uVar9)" identifier (argument_list "(pcVar2,uVar9)" ( identifier , identifier ))) ;) (if_statement "if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" if (parenthesized_expression "(local_1e < 2)" ( (binary_expression "local_1e < 2" identifier < number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }" { (if_statement "if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar2 = "\n    Offset\tName\n";\n      }" { (expression_statement "pcVar2 = "\n    Offset\tName\n";" (assignment_expression "pcVar2 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" else (compound_statement "{\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" { (expression_statement "pcVar2 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar2 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,pcVar2,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (do_statement "do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);" do (compound_statement "{\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      }" { (expression_statement "pcVar2 = pcVar13 + local_48;" (assignment_expression "pcVar2 = pcVar13 + local_48" identifier = (binary_expression "pcVar13 + local_48" identifier + identifier)) ;) (if_statement "if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" if (parenthesized_expression "(pcVar11 <= pcVar2)" ( (binary_expression "pcVar11 <= pcVar2" identifier <= identifier) )) (compound_statement "{\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" { (if_statement "if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" if (parenthesized_expression "((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8))" ( (binary_expression "(pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) && (parenthesized_expression "(((int)pcVar11 - (int)pcVar13) - 1U < 8)" ( (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U < 8" (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" ( (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" { (expression_statement "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);" (call_expression "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,(int)pcVar11 - (int)pcVar13)" ( identifier , (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "lVar14 = (*DAT_00073aec)(pcVar13,local_48);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar13,local_48)" identifier = (call_expression "(*DAT_00073aec)(pcVar13,local_48)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,local_48)" ( identifier , identifier )))) ;) (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar2;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar2" identifier = (binary_expression "(int)pcVar11 - (int)pcVar2" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }" { (expression_statement "sVar5 = iVar3 - 1;" (assignment_expression "sVar5 = iVar3 - 1" identifier = (binary_expression "iVar3 - 1" identifier - number_literal)) ;) (expression_statement "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);" (call_expression "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" identifier (argument_list "("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" else (compound_statement "{\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" { (expression_statement "pcVar13 = pcVar2 + 1;" (assignment_expression "pcVar13 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "sVar5 = iVar3 - 2;" (assignment_expression "sVar5 = iVar3 - 2" identifier = (binary_expression "iVar3 - 2" identifier - number_literal)) ;) (expression_statement "iVar6 = param_3;" (assignment_expression "iVar6 = param_3" identifier = identifier) ;) (if_statement "if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" if (parenthesized_expression "((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8))" ( (binary_expression "(pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) || (parenthesized_expression "(iVar6 = iVar3, iVar3 - 1U < 8)" ( (comma_expression "iVar6 = iVar3, iVar3 - 1U < 8" (assignment_expression "iVar6 = iVar3" identifier = identifier) , (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }" { (expression_statement "iVar3 = (*DAT_00073aec)(pcVar2,iVar6);" (assignment_expression "iVar3 = (*DAT_00073aec)(pcVar2,iVar6)" identifier = (call_expression "(*DAT_00073aec)(pcVar2,iVar6)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar2,iVar6)" ( identifier , identifier )))) ;) (expression_statement "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);" (assignment_expression "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" identifier = (cast_expression "(char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" identifier (argument_list "(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" ( number_literal , (pointer_expression "*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" * (cast_expression "(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" ( (binary_expression "&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (pointer_expression "&DAT_0006f2c0" & identifier) + (binary_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (parenthesized_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7)" ( (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c" (call_expression "(uint)(iVar3 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 << 0x18)" ( (binary_expression "iVar3 << 0x18" identifier << number_literal) ))) >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal ))))) ;) (if_statement "if (-1 < iVar3 << 0x18) goto LAB_000337b4;" if (parenthesized_expression "(-1 < iVar3 << 0x18)" ( (binary_expression "-1 < iVar3 << 0x18" number_literal < (binary_expression "iVar3 << 0x18" identifier << number_literal)) )) (goto_statement "goto LAB_000337b4;" goto statement_identifier ;)) (expression_statement "pcVar2 = "s";" (assignment_expression "pcVar2 = "s"" identifier = (string_literal ""s"" " string_content ")) ;) }) (else_clause "else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" else (compound_statement "{\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" { (expression_statement "local_3c = (char *)dcgettext(0,"no info",5);" (assignment_expression "local_3c = (char *)dcgettext(0,"no info",5)" identifier = (cast_expression "(char *)dcgettext(0,"no info",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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_000337b4:\n            pcVar2 = "g";" statement_identifier : (expression_statement "pcVar2 = "g";" (assignment_expression "pcVar2 = "g"" identifier = (string_literal ""g"" " string_content ")) ;)) }))) (expression_statement "uVar9 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar2 = pcVar13;" (assignment_expression "pcVar2 = pcVar13" identifier = identifier) ;) }))) (expression_statement "sVar5 = strnlen(pcVar2,sVar5);" (assignment_expression "sVar5 = strnlen(pcVar2,sVar5)" identifier = (call_expression "strnlen(pcVar2,sVar5)" identifier (argument_list "(pcVar2,sVar5)" ( identifier , identifier )))) ;) (expression_statement "pcVar13 = pcVar2 + sVar5 + 1;" (assignment_expression "pcVar13 = pcVar2 + sVar5 + 1" identifier = (binary_expression "pcVar2 + sVar5 + 1" (binary_expression "pcVar2 + sVar5" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) ;) }) (else_clause "else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" else (if_statement "if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" if (parenthesized_expression "(DAT_00071204 == 0)" ( (binary_expression "DAT_00071204 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" { (expression_statement "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (assignment_expression "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier = (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(uVar9);" (call_expression "warn(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "DAT_00071204 = 1;" (assignment_expression "DAT_00071204 = 1" identifier = number_literal) ;) })))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  char *message;\n  dwarf_section *section_1;\n  dwarf_vma *pdVar10;\n  uchar *puVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  elf_vma eVar15;\n  elf_vma eVar16;\n  char *in_stack_ffffffa8;\n  void *in_stack_ffffffb4;\n  uchar *local_48;\n  undefined8 local_44;\n  uchar *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  puVar11 = section->start;\n  puVar12 = puVar11 + (int)section->size;\n  load_debug_info(in_stack_ffffffb4);\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1);\n  do {\n    if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = puVar11 + 4;\n    if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }\n    puVar3 = puVar12 + -(int)puVar11;\n    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = (uchar *)0x4;\n    puVar3 = (uchar *)in_stack_ffffffa8;\nLAB_000333e8:\n    local_44 = 0;\n    uVar13 = (int)local_3c - (int)section->start;\n    uVar14 = 0;\n    local_28 = uVar13;\nLAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);\n    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;\n    puVar3 = local_3c + 2;\n    puVar11 = local_3c + (uint)local_44;\n    puVar4 = local_48;\n    if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }\nLAB_00033498:\n    local_3c = puVar3 + (int)local_48;\n    puVar3 = local_3c + (int)local_48;\n    puVar4 = local_48;\n    if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,(uint)local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2);\n    if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "int __regparm3 display_debug_pubnames_worker(dwarf_section *section,void *file,int is_gnu)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  char *message;\n  dwarf_section *section_1;\n  dwarf_vma *pdVar10;\n  uchar *puVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  elf_vma eVar15;\n  elf_vma eVar16;\n  char *in_stack_ffffffa8;\n  void *in_stack_ffffffb4;\n  uchar *local_48;\n  undefined8 local_44;\n  uchar *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  puVar11 = section->start;\n  puVar12 = puVar11 + (int)section->size;\n  load_debug_info(in_stack_ffffffb4);\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1);\n  do {\n    if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = puVar11 + 4;\n    if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }\n    puVar3 = puVar12 + -(int)puVar11;\n    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = (uchar *)0x4;\n    puVar3 = (uchar *)in_stack_ffffffa8;\nLAB_000333e8:\n    local_44 = 0;\n    uVar13 = (int)local_3c - (int)section->start;\n    uVar14 = 0;\n    local_28 = uVar13;\nLAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);\n    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;\n    puVar3 = local_3c + 2;\n    puVar11 = local_3c + (uint)local_44;\n    puVar4 = local_48;\n    if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }\nLAB_00033498:\n    local_3c = puVar3 + (int)local_48;\n    puVar3 = local_3c + (int)local_48;\n    puVar4 = local_48;\n    if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,(uint)local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2);\n    if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (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  uint uVar1;\n  char *pcVar2;\n  uchar *puVar3;\n  uchar *puVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined4 uVar7;\n  size_t sVar8;\n  int iVar9;\n  char *message;\n  dwarf_section *section_1;\n  dwarf_vma *pdVar10;\n  uchar *puVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  elf_vma eVar15;\n  elf_vma eVar16;\n  char *in_stack_ffffffa8;\n  void *in_stack_ffffffb4;\n  uchar *local_48;\n  undefined8 local_44;\n  uchar *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  puVar11 = section->start;\n  puVar12 = puVar11 + (int)section->size;\n  load_debug_info(in_stack_ffffffb4);\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1);\n  do {\n    if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = puVar11 + 4;\n    if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }\n    puVar3 = puVar12 + -(int)puVar11;\n    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = (uchar *)0x4;\n    puVar3 = (uchar *)in_stack_ffffffa8;\nLAB_000333e8:\n    local_44 = 0;\n    uVar13 = (int)local_3c - (int)section->start;\n    uVar14 = 0;\n    local_28 = uVar13;\nLAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);\n    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;\n    puVar3 = local_3c + 2;\n    puVar11 = local_3c + (uint)local_44;\n    puVar4 = local_48;\n    if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }\nLAB_00033498:\n    local_3c = puVar3 + (int)local_48;\n    puVar3 = local_3c + (int)local_48;\n    puVar4 = local_48;\n    if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,(uint)local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2);\n    if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "dwarf_section *section_1;" type_identifier (pointer_declarator "*section_1" * identifier) ;) (declaration "dwarf_vma *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "uchar *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "elf_vma eVar15;" type_identifier identifier ;) (declaration "elf_vma eVar16;" type_identifier identifier ;) (declaration "char *in_stack_ffffffa8;" primitive_type (pointer_declarator "*in_stack_ffffffa8" * identifier) ;) (declaration "void *in_stack_ffffffb4;" primitive_type (pointer_declarator "*in_stack_ffffffb4" * identifier) ;) (declaration "uchar *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined8 local_44;" type_identifier identifier ;) (declaration "uchar *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "ushort local_1e;" type_identifier identifier ;) (expression_statement "puVar11 = section->start;" (assignment_expression "puVar11 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "puVar12 = puVar11 + (int)section->size;" (assignment_expression "puVar12 = puVar11 + (int)section->size" identifier = (binary_expression "puVar11 + (int)section->size" identifier + (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier)))) ;) (expression_statement "load_debug_info(in_stack_ffffffb4);" (call_expression "load_debug_info(in_stack_ffffffb4)" identifier (argument_list "(in_stack_ffffffb4)" ( identifier ))) ;) (expression_statement "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1);" (call_expression "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,section_1)" identifier (argument_list "((dwarf_section *)section->name,(bfd_boolean)&section->filename,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 "(bfd_boolean)&section->filename" (parenthesized_expression "(bfd_boolean)" ( identifier )) & (field_expression "section->filename" identifier -> field_identifier)) , identifier ))) ;) (do_statement "do {\n    if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = puVar11 + 4;\n    if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }\n    puVar3 = puVar12 + -(int)puVar11;\n    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = (uchar *)0x4;\n    puVar3 = (uchar *)in_stack_ffffffa8;\nLAB_000333e8:\n    local_44 = 0;\n    uVar13 = (int)local_3c - (int)section->start;\n    uVar14 = 0;\n    local_28 = uVar13;\nLAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);\n    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;\n    puVar3 = local_3c + 2;\n    puVar11 = local_3c + (uint)local_44;\n    puVar4 = local_48;\n    if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }\nLAB_00033498:\n    local_3c = puVar3 + (int)local_48;\n    puVar3 = local_3c + (int)local_48;\n    puVar4 = local_48;\n    if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,(uint)local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2);\n    if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = puVar11 + 4;\n    if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }\n    puVar3 = puVar12 + -(int)puVar11;\n    if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = (uchar *)0x4;\n    puVar3 = (uchar *)in_stack_ffffffa8;\nLAB_000333e8:\n    local_44 = 0;\n    uVar13 = (int)local_3c - (int)section->start;\n    uVar14 = 0;\n    local_28 = uVar13;\nLAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);\n    if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;\n    puVar3 = local_3c + 2;\n    puVar11 = local_3c + (uint)local_44;\n    puVar4 = local_48;\n    if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }\nLAB_00033498:\n    local_3c = puVar3 + (int)local_48;\n    puVar3 = local_3c + (int)local_48;\n    puVar4 = local_48;\n    if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,(uint)local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2);\n    if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }\n  }" { (if_statement "if (puVar12 <= puVar11) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(puVar12 <= puVar11)" ( (binary_expression "puVar12 <= puVar11" identifier <= identifier) )) (compound_statement "{\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_000339a9:\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 "local_3c = puVar11 + 4;" (assignment_expression "local_3c = puVar11 + 4" identifier = (binary_expression "puVar11 + 4" identifier + number_literal)) ;) (if_statement "if (local_3c < puVar12) {\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }" if (parenthesized_expression "(local_3c < puVar12)" ( (binary_expression "local_3c < puVar12" identifier < identifier) )) (compound_statement "{\n      puVar3 = (uchar *)0x4;\nLAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);\n      if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }\n      local_28 = (int)local_3c - (int)section->start;\n      uVar13 = (uint)local_44 + local_28;\n      uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);\n      if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;\nLAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);\n      pcVar2 = section->name;\n      message = (char *)dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(message,pcVar2,local_28 - local_38,pcVar5);\n      goto LAB_000339a9;\n    }" { (expression_statement "puVar3 = (uchar *)0x4;" (assignment_expression "puVar3 = (uchar *)0x4" identifier = (cast_expression "(uchar *)0x4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0003357a:\n      local_44 = (*byte_get)(puVar11,(int)puVar3);" statement_identifier : (expression_statement "local_44 = (*byte_get)(puVar11,(int)puVar3);" (assignment_expression "local_44 = (*byte_get)(puVar11,(int)puVar3)" identifier = (call_expression "(*byte_get)(puVar11,(int)puVar3)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar11,(int)puVar3)" ( identifier , (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (if_statement "if (local_44 == 0xffffffff) {\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }\n      else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }" if (parenthesized_expression "(local_44 == 0xffffffff)" ( (binary_expression "local_44 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        puVar11 = puVar11 + 0xc;\n        if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }\n        local_44 = (*byte_get)(local_3c,(int)puVar4);\n        local_38 = 0xc;\n        local_48 = (uchar *)0x8;\n        puVar3 = puVar4;\n        local_3c = puVar11;\n      }" { (expression_statement "puVar11 = puVar11 + 0xc;" (assignment_expression "puVar11 = puVar11 + 0xc" identifier = (binary_expression "puVar11 + 0xc" identifier + number_literal)) ;) (if_statement "if (puVar11 < puVar12) {\n          puVar4 = (uchar *)0x8;\n        }\n        else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "(puVar11 < puVar12)" ( (binary_expression "puVar11 < puVar12" identifier < identifier) )) (compound_statement "{\n          puVar4 = (uchar *)0x8;\n        }" { (expression_statement "puVar4 = (uchar *)0x8;" (assignment_expression "puVar4 = (uchar *)0x8" identifier = (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }" else (if_statement "if ((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)) {\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "((puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1))" ( (binary_expression "(puVar12 <= local_3c) ||\n                (puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)" (parenthesized_expression "(puVar12 <= local_3c)" ( (binary_expression "puVar12 <= local_3c" identifier <= identifier) )) || (parenthesized_expression "(puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1)" ( (comma_expression "puVar4 = puVar12 + -(int)local_3c, (uchar *)0x7 < puVar4 + -1" (assignment_expression "puVar4 = puVar12 + -(int)local_3c" identifier = (binary_expression "puVar12 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "(uchar *)0x7 < puVar4 + -1" (cast_expression "(uchar *)0x7" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar4 + -1" identifier + number_literal))) ))) )) (compound_statement "{\n          local_38 = 0xc;\n          local_48 = (uchar *)0x8;\n          local_3c = puVar11;\n          goto LAB_000333e8;\n        }" { (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = (uchar *)0x8;" (assignment_expression "local_48 = (uchar *)0x8" identifier = (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_3c = puVar11;" (assignment_expression "local_3c = puVar11" identifier = identifier) ;) (goto_statement "goto LAB_000333e8;" goto statement_identifier ;) })))) (expression_statement "local_44 = (*byte_get)(local_3c,(int)puVar4);" (assignment_expression "local_44 = (*byte_get)(local_3c,(int)puVar4)" identifier = (call_expression "(*byte_get)(local_3c,(int)puVar4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_3c,(int)puVar4)" ( identifier , (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = (uchar *)0x8;" (assignment_expression "local_48 = (uchar *)0x8" identifier = (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) (expression_statement "local_3c = puVar11;" (assignment_expression "local_3c = puVar11" identifier = identifier) ;) }) (else_clause "else {\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }" else (compound_statement "{\n        local_38 = 4;\n        local_48 = (uchar *)0x4;\n      }" { (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = (uchar *)0x4;" (assignment_expression "local_48 = (uchar *)0x4" identifier = (cast_expression "(uchar *)0x4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "local_28 = (int)local_3c - (int)section->start;" (assignment_expression "local_28 = (int)local_3c - (int)section->start" identifier = (binary_expression "(int)local_3c - (int)section->start" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "uVar13 = (uint)local_44 + local_28;" (assignment_expression "uVar13 = (uint)local_44 + local_28" identifier = (binary_expression "(uint)local_44 + local_28" (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28);" (assignment_expression "uVar14 = local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28)" identifier = (binary_expression "local_44._4_4_ + (uint)CARRY4((uint)local_44,local_28)" (field_expression "local_44._4_4_" identifier . field_identifier) + (cast_expression "(uint)CARRY4((uint)local_44,local_28)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)local_44,local_28)" identifier (argument_list "((uint)local_44,local_28)" ( (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (if_statement "if ((uVar13 < local_28) <= uVar14) goto LAB_0003340b;" if (parenthesized_expression "((uVar13 < local_28) <= uVar14)" ( (binary_expression "(uVar13 < local_28) <= uVar14" (parenthesized_expression "(uVar13 < local_28)" ( (binary_expression "uVar13 < local_28" identifier < identifier) )) <= identifier) )) (goto_statement "goto LAB_0003340b;" goto statement_identifier ;)) (labeled_statement "LAB_00033961:\n      pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);" statement_identifier : (expression_statement "pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44);" (assignment_expression "pcVar5 = dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44)" identifier = (call_expression "dwarf_vmatoa_1("x",ZEXT48(puVar3) << 0x20,(uint)local_44)" identifier (argument_list "("x",ZEXT48(puVar3) << 0x20,(uint)local_44)" ( (string_literal ""x"" " string_content ") , (binary_expression "ZEXT48(puVar3) << 0x20" (call_expression "ZEXT48(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) << number_literal) , (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;)) (expression_statement "pcVar2 = section->name;" (assignment_expression "pcVar2 = 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,pcVar2,local_28 - local_38,pcVar5);" (call_expression "warn(message,pcVar2,local_28 - local_38,pcVar5)" identifier (argument_list "(message,pcVar2,local_28 - local_38,pcVar5)" ( identifier , identifier , (binary_expression "local_28 - local_38" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_000339a9;" goto statement_identifier ;) })) (expression_statement "puVar3 = puVar12 + -(int)puVar11;" (assignment_expression "puVar3 = puVar12 + -(int)puVar11" identifier = (binary_expression "puVar12 + -(int)puVar11" identifier + (unary_expression "-(int)puVar11" - (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (puVar3 + -1 < (uchar *)0x8) goto LAB_0003357a;" if (parenthesized_expression "(puVar3 + -1 < (uchar *)0x8)" ( (binary_expression "puVar3 + -1 < (uchar *)0x8" (binary_expression "puVar3 + -1" identifier + number_literal) < (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003357a;" goto statement_identifier ;)) (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = (uchar *)0x4;" (assignment_expression "local_48 = (uchar *)0x4" identifier = (cast_expression "(uchar *)0x4" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar3 = (uchar *)in_stack_ffffffa8;" (assignment_expression "puVar3 = (uchar *)in_stack_ffffffa8" identifier = (cast_expression "(uchar *)in_stack_ffffffa8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000333e8:\n    local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (expression_statement "uVar13 = (int)local_3c - (int)section->start;" (assignment_expression "uVar13 = (int)local_3c - (int)section->start" identifier = (binary_expression "(int)local_3c - (int)section->start" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)section->start" ( (type_descriptor "int" primitive_type) ) (field_expression "section->start" identifier -> field_identifier)))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "local_28 = uVar13;" (assignment_expression "local_28 = uVar13" identifier = identifier) ;) (labeled_statement "LAB_0003340b:\n    uVar1 = *(uint *)((int)&section->size + 4);" statement_identifier : (expression_statement "uVar1 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar1 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;)) (if_statement "if (uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)) goto LAB_00033961;" if (parenthesized_expression "(uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13))" ( (binary_expression "uVar1 < uVar14 || uVar1 - uVar14 < (uint)((uint)section->size < uVar13)" (binary_expression "uVar1 < uVar14" identifier < identifier) || (binary_expression "uVar1 - uVar14 < (uint)((uint)section->size < uVar13)" (binary_expression "uVar1 - uVar14" identifier - identifier) < (call_expression "(uint)((uint)section->size < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)section->size < uVar13)" ( (binary_expression "(uint)section->size < uVar13" (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier)) < identifier) ))))) )) (goto_statement "goto LAB_00033961;" goto statement_identifier ;)) (expression_statement "puVar3 = local_3c + 2;" (assignment_expression "puVar3 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "puVar11 = local_3c + (uint)local_44;" (assignment_expression "puVar11 = local_3c + (uint)local_44" identifier = (binary_expression "local_3c + (uint)local_44" identifier + (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "puVar4 = local_48;" (assignment_expression "puVar4 = local_48" identifier = identifier) ;) (if_statement "if (puVar3 < puVar12) {\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }\n    else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "(puVar3 < puVar12)" ( (binary_expression "puVar3 < puVar12" identifier < identifier) )) (compound_statement "{\n      eVar15 = (*byte_get)(local_3c,2);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }\nLAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);\n      local_28 = (uint)eVar15;\n    }" { (expression_statement "eVar15 = (*byte_get)(local_3c,2);" (assignment_expression "eVar15 = (*byte_get)(local_3c,2)" identifier = (call_expression "(*byte_get)(local_3c,2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_3c,2)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = (uint)eVar15;" (assignment_expression "uVar13 = (uint)eVar15" identifier = (cast_expression "(uint)eVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar3 + (int)local_48 < puVar12) {\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }\n      else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }" if (parenthesized_expression "(puVar3 + (int)local_48 < puVar12)" ( (binary_expression "puVar3 + (int)local_48 < puVar12" (binary_expression "puVar3 + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )) (compound_statement "{\nLAB_000338c0:\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)uVar13 - 2;\n      }" { (labeled_statement "LAB_000338c0:\n        local_24 = uVar13 & 0xffff;" statement_identifier : (expression_statement "local_24 = uVar13 & 0xffff;" (assignment_expression "local_24 = uVar13 & 0xffff" identifier = (binary_expression "uVar13 & 0xffff" identifier & number_literal)) ;)) (expression_statement "local_1e = (short)uVar13 - 2;" (assignment_expression "local_1e = (short)uVar13 - 2" identifier = (binary_expression "(short)uVar13 - 2" (cast_expression "(short)uVar13" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) - number_literal)) ;) }) (else_clause "else {\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }" else (compound_statement "{\n        local_24 = uVar13 & 0xffff;\n        local_1e = (short)eVar15 - 2;\n        puVar4 = puVar12 + -(int)puVar3;\n        if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;\n      }" { (expression_statement "local_24 = uVar13 & 0xffff;" (assignment_expression "local_24 = uVar13 & 0xffff" identifier = (binary_expression "uVar13 & 0xffff" identifier & number_literal)) ;) (expression_statement "local_1e = (short)eVar15 - 2;" (assignment_expression "local_1e = (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 "puVar4 = puVar12 + -(int)puVar3;" (assignment_expression "puVar4 = puVar12 + -(int)puVar3" identifier = (binary_expression "puVar12 + -(int)puVar3" identifier + (unary_expression "-(int)puVar3" - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if ((uchar *)0x7 < puVar12 + -(int)puVar3 + -1) goto LAB_00033660;" if (parenthesized_expression "((uchar *)0x7 < puVar12 + -(int)puVar3 + -1)" ( (binary_expression "(uchar *)0x7 < puVar12 + -(int)puVar3 + -1" (cast_expression "(uchar *)0x7" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "puVar12 + -(int)puVar3 + -1" (binary_expression "puVar12 + -(int)puVar3" identifier + (unary_expression "-(int)puVar3" - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) )) (goto_statement "goto LAB_00033660;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00033478:\n      eVar15 = (*byte_get)(puVar3,(int)puVar4);" statement_identifier : (expression_statement "eVar15 = (*byte_get)(puVar3,(int)puVar4);" (assignment_expression "eVar15 = (*byte_get)(puVar3,(int)puVar4)" identifier = (call_expression "(*byte_get)(puVar3,(int)puVar4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar3,(int)puVar4)" ( identifier , (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;)) (expression_statement "local_28 = (uint)eVar15;" (assignment_expression "local_28 = (uint)eVar15" identifier = (cast_expression "(uint)eVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (if_statement "if ((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }\n    else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "((local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8))" ( (binary_expression "(local_3c < puVar12) && (((int)puVar12 - (int)local_3c) - 1U < 8)" (parenthesized_expression "(local_3c < puVar12)" ( (binary_expression "local_3c < puVar12" identifier < identifier) )) && (parenthesized_expression "(((int)puVar12 - (int)local_3c) - 1U < 8)" ( (binary_expression "((int)puVar12 - (int)local_3c) - 1U < 8" (binary_expression "((int)puVar12 - (int)local_3c) - 1U" (parenthesized_expression "((int)puVar12 - (int)local_3c)" ( (binary_expression "(int)puVar12 - (int)local_3c" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n      eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);\n      uVar13 = (uint)eVar15;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;\n      local_24 = uVar13 & 0xffff;\n      local_1e = (short)eVar15 - 2;\n      local_28 = 0;\n    }" { (expression_statement "eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c);" (assignment_expression "eVar15 = (*byte_get)(local_3c,(int)puVar12 - (int)local_3c)" identifier = (call_expression "(*byte_get)(local_3c,(int)puVar12 - (int)local_3c)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_3c,(int)puVar12 - (int)local_3c)" ( identifier , (binary_expression "(int)puVar12 - (int)local_3c" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "uVar13 = (uint)eVar15;" (assignment_expression "uVar13 = (uint)eVar15" identifier = (cast_expression "(uint)eVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (puVar3 + (int)local_48 < puVar12) goto LAB_000338c0;" if (parenthesized_expression "(puVar3 + (int)local_48 < puVar12)" ( (binary_expression "puVar3 + (int)local_48 < puVar12" (binary_expression "puVar3 + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )) (goto_statement "goto LAB_000338c0;" goto statement_identifier ;)) (expression_statement "local_24 = uVar13 & 0xffff;" (assignment_expression "local_24 = uVar13 & 0xffff" identifier = (binary_expression "uVar13 & 0xffff" identifier & number_literal)) ;) (expression_statement "local_1e = (short)eVar15 - 2;" (assignment_expression "local_1e = (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_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (compound_statement "{\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" { (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_1e = 0xfffe;" (assignment_expression "local_1e = 0xfffe" identifier = number_literal) ;) (if_statement "if (puVar3 + (int)local_48 < puVar12) goto LAB_00033478;" if (parenthesized_expression "(puVar3 + (int)local_48 < puVar12)" ( (binary_expression "puVar3 + (int)local_48 < puVar12" (binary_expression "puVar3 + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier)) < identifier) )) (goto_statement "goto LAB_00033478;" goto statement_identifier ;)) (labeled_statement "LAB_00033660:\n      local_28 = 0;" statement_identifier : (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;)) }))))) (if_statement "if (num_debug_info_entries - 1 < 0xfffffffe) {\n      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\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      uVar13 = 0;\n      pdVar10 = &debug_information->cu_offset;\n      do {\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);\n      pcVar2 = section->name;\n      pcVar5 = (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(pcVar5,local_28,pcVar2);\n    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "pdVar10 = &debug_information->cu_offset;" (assignment_expression "pdVar10 = &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 ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      } while (num_debug_info_entries != uVar13);" do (compound_statement "{\n        if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;\n        uVar13 = uVar13 + 1;\n        pdVar10 = pdVar10 + 10;\n      }" { (if_statement "if ((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0) goto LAB_00033498;" if (parenthesized_expression "((int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0)" ( (binary_expression "(int)*pdVar10 == local_28 && *(int *)((int)pdVar10 + 4) == 0" (binary_expression "(int)*pdVar10 == local_28" (cast_expression "(int)*pdVar10" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pdVar10" * identifier)) == identifier) && (binary_expression "*(int *)((int)pdVar10 + 4) == 0" (pointer_expression "*(int *)((int)pdVar10 + 4)" * (cast_expression "(int *)((int)pdVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar10 + 4)" ( (binary_expression "(int)pdVar10 + 4" (cast_expression "(int)pdVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal)) )) (goto_statement "goto LAB_00033498;" goto statement_identifier ;)) (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (expression_statement "pdVar10 = pdVar10 + 10;" (assignment_expression "pdVar10 = pdVar10 + 10" identifier = (binary_expression "pdVar10 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(num_debug_info_entries != uVar13)" ( (binary_expression "num_debug_info_entries != uVar13" identifier != identifier) )) ;) (expression_statement "pcVar2 = section->name;" (assignment_expression "pcVar2 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar5 = (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 "pcVar5 = (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(pcVar5,local_28,pcVar2);" (call_expression "warn(pcVar5,local_28,pcVar2)" identifier (argument_list "(pcVar5,local_28,pcVar2)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00033498:\n    local_3c = puVar3 + (int)local_48;" statement_identifier : (expression_statement "local_3c = puVar3 + (int)local_48;" (assignment_expression "local_3c = puVar3 + (int)local_48" identifier = (binary_expression "puVar3 + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "puVar3 = local_3c + (int)local_48;" (assignment_expression "puVar3 = local_3c + (int)local_48" identifier = (binary_expression "local_3c + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar4 = local_48;" (assignment_expression "puVar4 = local_48" identifier = identifier) ;) (if_statement "if ((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))) {\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }" if (parenthesized_expression "((puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8))))" ( (binary_expression "(puVar3 < puVar12) ||\n       ((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))" (parenthesized_expression "(puVar3 < puVar12)" ( (binary_expression "puVar3 < puVar12" identifier < identifier) )) || (parenthesized_expression "((in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)))" ( (parenthesized_expression "(in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8))" ( (comma_expression "in_stack_ffffffa8 = (char *)0x0, local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)" (assignment_expression "in_stack_ffffffa8 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "local_3c < puVar12 &&\n        (puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)" (binary_expression "local_3c < puVar12" identifier < identifier) && (parenthesized_expression "(puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8)" ( (comma_expression "puVar4 = puVar12 + -(int)local_3c, puVar12 + -(int)local_3c + -1 < (uchar *)0x8" (assignment_expression "puVar4 = puVar12 + -(int)local_3c" identifier = (binary_expression "puVar12 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "puVar12 + -(int)local_3c + -1 < (uchar *)0x8" (binary_expression "puVar12 + -(int)local_3c + -1" (binary_expression "puVar12 + -(int)local_3c" identifier + (unary_expression "-(int)local_3c" - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal) < (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n      eVar15 = (*byte_get)(local_3c,(int)puVar4);\n      in_stack_ffffffa8 = (char *)eVar15;\n    }" { (expression_statement "eVar15 = (*byte_get)(local_3c,(int)puVar4);" (assignment_expression "eVar15 = (*byte_get)(local_3c,(int)puVar4)" identifier = (call_expression "(*byte_get)(local_3c,(int)puVar4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(local_3c,(int)puVar4)" ( identifier , (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "in_stack_ffffffa8 = (char *)eVar15;" (assignment_expression "in_stack_ffffffa8 = (char *)eVar15" identifier = (cast_expression "(char *)eVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,(uint)local_44);" (call_expression "printf(pcVar2,(uint)local_44)" identifier (argument_list "(pcVar2,(uint)local_44)" ( identifier , (cast_expression "(uint)local_44" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_24);" (call_expression "printf(pcVar2,local_24)" identifier (argument_list "(pcVar2,local_24)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_28);" (call_expression "printf(pcVar2,local_28)" identifier (argument_list "(pcVar2,local_28)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (local_1e < 2) {\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }\n    else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" if (parenthesized_expression "(local_1e < 2)" ( (binary_expression "local_1e < 2" identifier < number_literal) )) (compound_statement "{\n      if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);\n      printf(pcVar2);\n      do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);\n    }" { (if_statement "if (is_gnu == 0) {\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }\n      else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }" if (parenthesized_expression "(is_gnu == 0)" ( (binary_expression "is_gnu == 0" identifier == number_literal) )) (compound_statement "{\n        in_stack_ffffffa8 = "\n    Offset\tName\n";\n      }" { (expression_statement "in_stack_ffffffa8 = "\n    Offset\tName\n";" (assignment_expression "in_stack_ffffffa8 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) }) (else_clause "else {\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }" else (compound_statement "{\n        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";\n      }" { (expression_statement "in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";" (assignment_expression "in_stack_ffffffa8 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,in_stack_ffffffa8,5)" identifier = (cast_expression "(char *)dcgettext(0,in_stack_ffffffa8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,in_stack_ffffffa8,5)" identifier (argument_list "(0,in_stack_ffffffa8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (do_statement "do {\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      } while (puVar3 < puVar12);" do (compound_statement "{\n        puVar4 = puVar3 + (int)local_48;\n        if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }\n        in_stack_ffffffa8 = (char *)local_48;\n        eVar15 = (*byte_get)(puVar3,(int)local_48);\n        if (eVar15 == 0) break;\n        iVar6 = (int)puVar12 - (int)puVar4;\n        if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }\n        sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);\n        puVar3 = puVar4 + sVar8 + 1;\n      }" { (expression_statement "puVar4 = puVar3 + (int)local_48;" (assignment_expression "puVar4 = puVar3 + (int)local_48" identifier = (binary_expression "puVar3 + (int)local_48" identifier + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (puVar12 <= puVar4) {\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }" if (parenthesized_expression "(puVar12 <= puVar4)" ( (binary_expression "puVar12 <= puVar4" identifier <= identifier) )) (compound_statement "{\n          if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }\n          break;\n        }" { (if_statement "if ((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)) {\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }" if (parenthesized_expression "((puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8))" ( (binary_expression "(puVar3 < puVar12) && (puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)" (parenthesized_expression "(puVar3 < puVar12)" ( (binary_expression "puVar3 < puVar12" identifier < identifier) )) && (parenthesized_expression "(puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8)" ( (comma_expression "puVar4 = puVar12 + -(int)puVar3, puVar4 + -1 < (uchar *)0x8" (assignment_expression "puVar4 = puVar12 + -(int)puVar3" identifier = (binary_expression "puVar12 + -(int)puVar3" identifier + (unary_expression "-(int)puVar3" - (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier)))) , (binary_expression "puVar4 + -1 < (uchar *)0x8" (binary_expression "puVar4 + -1" identifier + number_literal) < (cast_expression "(uchar *)0x8" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            (*byte_get)(puVar3,(int)puVar4);\n            in_stack_ffffffa8 = (char *)puVar4;\n          }" { (expression_statement "(*byte_get)(puVar3,(int)puVar4);" (call_expression "(*byte_get)(puVar3,(int)puVar4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar3,(int)puVar4)" ( identifier , (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "in_stack_ffffffa8 = (char *)puVar4;" (assignment_expression "in_stack_ffffffa8 = (char *)puVar4" identifier = (cast_expression "(char *)puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (break_statement "break;" break ;) })) (expression_statement "in_stack_ffffffa8 = (char *)local_48;" (assignment_expression "in_stack_ffffffa8 = (char *)local_48" identifier = (cast_expression "(char *)local_48" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "eVar15 = (*byte_get)(puVar3,(int)local_48);" (assignment_expression "eVar15 = (*byte_get)(puVar3,(int)local_48)" identifier = (call_expression "(*byte_get)(puVar3,(int)local_48)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar3,(int)local_48)" ( identifier , (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (eVar15 == 0) break;" if (parenthesized_expression "(eVar15 == 0)" ( (binary_expression "eVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = (int)puVar12 - (int)puVar4;" (assignment_expression "iVar6 = (int)puVar12 - (int)puVar4" identifier = (binary_expression "(int)puVar12 - (int)puVar4" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (is_gnu == 0) {\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }\n        else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }" if (parenthesized_expression "(is_gnu == 0)" ( (binary_expression "is_gnu == 0" identifier == number_literal) )) (compound_statement "{\n          in_stack_ffffffa8 = (char *)(iVar6 + -1);\n          printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);\n        }" { (expression_statement "in_stack_ffffffa8 = (char *)(iVar6 + -1);" (assignment_expression "in_stack_ffffffa8 = (char *)(iVar6 + -1)" identifier = (cast_expression "(char *)(iVar6 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -1)" ( (binary_expression "iVar6 + -1" identifier + number_literal) )))) ;) (expression_statement "printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4);" (call_expression "printf("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4)" identifier (argument_list "("    %-6lx\t%.*s\n",(int)eVar15,in_stack_ffffffa8,puVar4)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(int)eVar15" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }" else (compound_statement "{\n          puVar3 = puVar4 + 1;\n          in_stack_ffffffa8 = (char *)(iVar6 + -2);\n          iVar9 = is_gnu;\n          if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar7 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);\n          puVar4 = puVar3;\n        }" { (expression_statement "puVar3 = puVar4 + 1;" (assignment_expression "puVar3 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "in_stack_ffffffa8 = (char *)(iVar6 + -2);" (assignment_expression "in_stack_ffffffa8 = (char *)(iVar6 + -2)" identifier = (cast_expression "(char *)(iVar6 + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + -2)" ( (binary_expression "iVar6 + -2" identifier + number_literal) )))) ;) (expression_statement "iVar9 = is_gnu;" (assignment_expression "iVar9 = is_gnu" identifier = identifier) ;) (if_statement "if ((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)) {\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" if (parenthesized_expression "((puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8))" ( (binary_expression "(puVar3 < puVar12) || (iVar9 = iVar6, iVar6 - 1U < 8)" (parenthesized_expression "(puVar3 < puVar12)" ( (binary_expression "puVar3 < puVar12" identifier < identifier) )) || (parenthesized_expression "(iVar9 = iVar6, iVar6 - 1U < 8)" ( (comma_expression "iVar9 = iVar6, iVar6 - 1U < 8" (assignment_expression "iVar9 = iVar6" identifier = identifier) , (binary_expression "iVar6 - 1U < 8" (binary_expression "iVar6 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n            eVar16 = (*byte_get)(puVar4,iVar9);\n            uVar13 = (int)eVar16 << 0x18;\n            local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);\n            if (-1 < (int)uVar13) goto LAB_000337b4;\n            pcVar2 = "s";\n          }" { (expression_statement "eVar16 = (*byte_get)(puVar4,iVar9);" (assignment_expression "eVar16 = (*byte_get)(puVar4,iVar9)" identifier = (call_expression "(*byte_get)(puVar4,iVar9)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar4,iVar9)" ( identifier , identifier )))) ;) (expression_statement "uVar13 = (int)eVar16 << 0x18;" (assignment_expression "uVar13 = (int)eVar16 << 0x18" identifier = (binary_expression "(int)eVar16 << 0x18" (cast_expression "(int)eVar16" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (expression_statement "local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5);" (assignment_expression "local_3c = (uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5)" identifier = (cast_expression "(uchar *)dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5)" identifier (argument_list "(0,*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4),\n                                          5)" ( number_literal , (pointer_expression "*(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4)" * (cast_expression "(undefined4 *)(kinds_11357 + (uVar13 >> 0x1c & 7) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(kinds_11357 + (uVar13 >> 0x1c & 7) * 4)" ( (binary_expression "kinds_11357 + (uVar13 >> 0x1c & 7) * 4" identifier + (binary_expression "(uVar13 >> 0x1c & 7) * 4" (parenthesized_expression "(uVar13 >> 0x1c & 7)" ( (binary_expression "uVar13 >> 0x1c & 7" (binary_expression "uVar13 >> 0x1c" identifier >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal ))))) ;) (if_statement "if (-1 < (int)uVar13) goto LAB_000337b4;" if (parenthesized_expression "(-1 < (int)uVar13)" ( (binary_expression "-1 < (int)uVar13" number_literal < (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000337b4;" goto statement_identifier ;)) (expression_statement "pcVar2 = "s";" (assignment_expression "pcVar2 = "s"" identifier = (string_literal ""s"" " string_content ")) ;) }) (else_clause "else {\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" else (compound_statement "{\n            local_3c = (uchar *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" { (expression_statement "local_3c = (uchar *)dcgettext(0,"no info",5);" (assignment_expression "local_3c = (uchar *)dcgettext(0,"no info",5)" identifier = (cast_expression "(uchar *)dcgettext(0,"no info",5)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (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_000337b4:\n            pcVar2 = "g";" statement_identifier : (expression_statement "pcVar2 = "g";" (assignment_expression "pcVar2 = "g"" identifier = (string_literal ""g"" " string_content ")) ;)) }))) (expression_statement "uVar7 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",(int)eVar15,uVar7,local_3c,in_stack_ffffffa8,puVar3)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , (cast_expression "(int)eVar15" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) }))) (expression_statement "sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8);" (assignment_expression "sVar8 = strnlen((char *)puVar4,(size_t)in_stack_ffffffa8)" identifier = (call_expression "strnlen((char *)puVar4,(size_t)in_stack_ffffffa8)" identifier (argument_list "((char *)puVar4,(size_t)in_stack_ffffffa8)" ( (cast_expression "(char *)puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)in_stack_ffffffa8" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "puVar3 = puVar4 + sVar8 + 1;" (assignment_expression "puVar3 = puVar4 + sVar8 + 1" identifier = (binary_expression "puVar4 + sVar8 + 1" (binary_expression "puVar4 + sVar8" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(puVar3 < puVar12)" ( (binary_expression "puVar3 < puVar12" identifier < identifier) )) ;) }) (else_clause "else if (display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned == 0) {\n      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\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      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\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      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";\n      pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(pcVar2);\n      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;\n    }" { (expression_statement "in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";" (assignment_expression "in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n"" identifier = (string_literal ""Only DWARF 2 and 3 pubnames are currently supported\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (assignment_expression "pcVar2 = (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(pcVar2);" (call_expression "warn(pcVar2)" identifier (argument_list "(pcVar2)" ( 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 "undefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)\n\n{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)\n\n{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00033370(int param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "longlong lVar14;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "char *local_3c;" primitive_type (pointer_declarator "*local_3c" * identifier) ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "ushort local_1e;" type_identifier identifier ;) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" identifier = (pointer_expression "*(char **)(param_1 + 0x10)" * (cast_expression "(char **)(param_1 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);" (assignment_expression "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c)" identifier = (binary_expression "pcVar10 + *(int *)(param_1 + 0x1c)" identifier + (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "FUN_00030680();" (call_expression "FUN_00030680()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001cea0();" (call_expression "FUN_0001cea0()" identifier (argument_list "()" ( ))) ;) (do_statement "do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  }" { (if_statement "if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" if (parenthesized_expression "(pcVar11 <= pcVar10)" ( (binary_expression "pcVar11 <= pcVar10" identifier <= identifier) )) (compound_statement "{\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" { (labeled_statement "LAB_000339a9:\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 "local_3c = pcVar10 + 4;" (assignment_expression "local_3c = pcVar10 + 4" identifier = (binary_expression "pcVar10 + 4" identifier + number_literal)) ;) (if_statement "if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" if (parenthesized_expression "(local_3c < pcVar11)" ( (binary_expression "local_3c < pcVar11" identifier < identifier) )) (compound_statement "{\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" { (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" identifier = number_literal) ;) (labeled_statement "LAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" statement_identifier : (expression_statement "lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar10,iVar3)" identifier = (call_expression "(*DAT_00073aec)(pcVar10,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar10,iVar3)" ( identifier , identifier )))) ;)) (if_statement "if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }" if (parenthesized_expression "(lVar14 == 0xffffffff)" ( (binary_expression "lVar14 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }" { (expression_statement "pcVar10 = pcVar10 + 0xc;" (assignment_expression "pcVar10 = pcVar10 + 0xc" identifier = (binary_expression "pcVar10 + 0xc" identifier + number_literal)) ;) (if_statement "if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "(pcVar10 < pcVar11)" ( (binary_expression "pcVar10 < pcVar11" identifier < identifier) )) (compound_statement "{\n          iVar3 = 8;\n        }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) }) (else_clause "else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" else (if_statement "if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" if (parenthesized_expression "((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U))" ( (binary_expression "(pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" (parenthesized_expression "(pcVar11 <= local_3c)" ( (binary_expression "pcVar11 <= local_3c" identifier <= identifier) )) || (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" ( (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" identifier = (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "7 < iVar3 - 1U" number_literal < (binary_expression "iVar3 - 1U" identifier - number_literal))) ))) )) (compound_statement "{\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" { (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" identifier = number_literal) ;) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" identifier = identifier) ;) (goto_statement "goto LAB_000333e8;" goto statement_identifier ;) })))) (expression_statement "lVar14 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(local_3c,iVar3)" identifier = (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,iVar3)" ( identifier , identifier )))) ;) (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" identifier = number_literal) ;) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" identifier = number_literal) ;) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" identifier = identifier) ;) }) (else_clause "else {\n        local_38 = 4;\n        local_48 = 4;\n      }" else (compound_statement "{\n        local_38 = 4;\n        local_48 = 4;\n      }" { (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" identifier = number_literal) ;) }))) (expression_statement "local_44 = (int)lVar14;" (assignment_expression "local_44 = (int)lVar14" identifier = (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" identifier = (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = lVar14 + (ulonglong)local_28;" (assignment_expression "uVar1 = lVar14 + (ulonglong)local_28" identifier = (binary_expression "lVar14 + (ulonglong)local_28" identifier + (cast_expression "(ulonglong)local_28" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (if_statement "if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;" if (parenthesized_expression "((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20))" ( (binary_expression "(uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)" (call_expression "(uint)((uint)uVar1 < local_28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar1 < local_28)" ( (binary_expression "(uint)uVar1 < local_28" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) )) (goto_statement "goto LAB_0003340b;" goto statement_identifier ;)) (labeled_statement "LAB_00033961:\n      uVar4 = FUN_0001aec0(0);" statement_identifier : (expression_statement "uVar4 = FUN_0001aec0(0);" (assignment_expression "uVar4 = FUN_0001aec0(0)" identifier = (call_expression "FUN_0001aec0(0)" identifier (argument_list "(0)" ( number_literal )))) ;)) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar7 = 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(uVar7,uVar9,local_28 - local_38,uVar4);" (call_expression "warn(uVar7,uVar9,local_28 - local_38,uVar4)" identifier (argument_list "(uVar7,uVar9,local_28 - local_38,uVar4)" ( identifier , identifier , (binary_expression "local_28 - local_38" identifier - identifier) , identifier ))) ;) (goto_statement "goto LAB_000339a9;" goto statement_identifier ;) })) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar10;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar10" identifier = (binary_expression "(int)pcVar11 - (int)pcVar10" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar3 - 1U < 8) goto LAB_0003357a;" if (parenthesized_expression "(iVar3 - 1U < 8)" ( (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0003357a;" goto statement_identifier ;)) (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" identifier = number_literal) ;) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" identifier = number_literal) ;) (labeled_statement "LAB_000333e8:\n    local_44 = 0;" statement_identifier : (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;)) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" identifier = (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) - (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (ulonglong)local_28;" (assignment_expression "uVar1 = (ulonglong)local_28" identifier = (cast_expression "(ulonglong)local_28" ( (type_descriptor "ulonglong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);" statement_identifier : (expression_statement "uVar12 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar1 >> 0x20)" identifier = (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 >> 0x20)" ( (binary_expression "uVar1 >> 0x20" identifier >> number_literal) )))) ;)) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;" if (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))" ( (binary_expression "*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" ( (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar1" (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) < (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (goto_statement "goto LAB_00033961;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_3c + 2;" (assignment_expression "pcVar13 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (expression_statement "pcVar10 = local_3c + local_44;" (assignment_expression "pcVar10 = local_3c + local_44" identifier = (binary_expression "local_3c + local_44" identifier + identifier)) ;) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) (compound_statement "{\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }" { (expression_statement "local_1e = (*DAT_00073aec)(local_3c,2);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,2)" identifier = (call_expression "(*DAT_00073aec)(local_3c,2)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,2)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (compound_statement "{\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }" { (labeled_statement "LAB_000338c0:\n        local_24 = (uint)local_1e;" statement_identifier : (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) }) (else_clause "else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" else (compound_statement "{\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" { (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar13;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar13" identifier = (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;" if (parenthesized_expression "(7 < ((int)pcVar11 - (int)pcVar13) - 1U)" ( (binary_expression "7 < ((int)pcVar11 - (int)pcVar13) - 1U" number_literal < (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" ( (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal)) )) (goto_statement "goto LAB_00033660;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);" statement_identifier : (expression_statement "local_28 = (*DAT_00073aec)(pcVar13,iVar3);" (assignment_expression "local_28 = (*DAT_00073aec)(pcVar13,iVar3)" identifier = (call_expression "(*DAT_00073aec)(pcVar13,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,iVar3)" ( identifier , identifier )))) ;)) }) (else_clause "else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (if_statement "if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" if (parenthesized_expression "(local_3c < pcVar11)" ( (binary_expression "local_3c < pcVar11" identifier < identifier) )) (compound_statement "{\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }" { (expression_statement "uVar12 = ((int)pcVar11 - (int)local_3c) - 1;" (assignment_expression "uVar12 = ((int)pcVar11 - (int)local_3c) - 1" identifier = (binary_expression "((int)pcVar11 - (int)local_3c) - 1" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" ( (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal)) ;) (if_statement "if (7 < uVar12) goto LAB_0003344a;" if (parenthesized_expression "(7 < uVar12)" ( (binary_expression "7 < uVar12" number_literal < identifier) )) (goto_statement "goto LAB_0003344a;" goto statement_identifier ;)) (expression_statement "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" identifier = (call_expression "(*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" ( identifier , (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , identifier )))) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (goto_statement "goto LAB_000338c0;" goto statement_identifier ;)) (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" identifier = (cast_expression "(uint)local_1e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" identifier = (binary_expression "local_1e - 2" identifier - number_literal)) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" else (compound_statement "{\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" { (labeled_statement "LAB_0003344a:\n      local_24 = 0;" statement_identifier : (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;)) (expression_statement "local_1e = 0xfffe;" (assignment_expression "local_1e = 0xfffe" identifier = number_literal) ;) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;" if (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" ( (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" identifier + identifier) < identifier) )) (goto_statement "goto LAB_00033478;" goto statement_identifier ;)) (labeled_statement "LAB_00033660:\n      local_28 = 0;" statement_identifier : (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;)) }))))) (if_statement "if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" if (parenthesized_expression "(DAT_00073928 - 1U < 0xfffffffe)" ( (binary_expression "DAT_00073928 - 1U < 0xfffffffe" (binary_expression "DAT_00073928 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)(DAT_00073920 + 0xc);" (assignment_expression "piVar8 = (int *)(DAT_00073920 + 0xc)" identifier = (cast_expression "(int *)(DAT_00073920 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00073920 + 0xc)" ( (binary_expression "DAT_00073920 + 0xc" identifier + number_literal) )))) ;) (do_statement "do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);" do (compound_statement "{\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      }" { (if_statement "if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;" if (parenthesized_expression "(*piVar8 == local_28 && piVar8[1] == 0)" ( (binary_expression "*piVar8 == local_28 && piVar8[1] == 0" (binary_expression "*piVar8 == local_28" (pointer_expression "*piVar8" * identifier) == identifier) && (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) == number_literal)) )) (goto_statement "goto LAB_00033498;" goto statement_identifier ;)) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar8 + 0x14;" (assignment_expression "piVar8 = piVar8 + 0x14" identifier = (binary_expression "piVar8 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00073928 != iVar3)" ( (binary_expression "DAT_00073928 != iVar3" identifier != identifier) )) ;) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);" (assignment_expression "uVar4 = 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(uVar4,local_28,uVar9);" (call_expression "warn(uVar4,local_28,uVar9)" identifier (argument_list "(uVar4,local_28,uVar9)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00033498:\n    local_3c = pcVar13 + local_48;" statement_identifier : (expression_statement "local_3c = pcVar13 + local_48;" (assignment_expression "local_3c = pcVar13 + local_48" identifier = (binary_expression "pcVar13 + local_48" identifier + identifier)) ;)) (expression_statement "pcVar13 = local_3c + local_48;" (assignment_expression "pcVar13 = local_3c + local_48" identifier = (binary_expression "local_3c + local_48" identifier + identifier)) ;) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" identifier = identifier) ;) (if_statement "if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" if (parenthesized_expression "((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))))" ( (binary_expression "(pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) || (parenthesized_expression "((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" ( (parenthesized_expression "(uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))" ( (comma_expression "uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (assignment_expression "uVar9 = 0" identifier = number_literal) , (binary_expression "local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (binary_expression "local_3c < pcVar11" identifier < identifier) && (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" ( (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" identifier = (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "((int)pcVar11 - (int)local_3c) - 1U < 8" (binary_expression "((int)pcVar11 - (int)local_3c) - 1U" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" ( (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal)) )))) )) ))) )) (compound_statement "{\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" { (expression_statement "uVar9 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "uVar9 = (*DAT_00073aec)(local_3c,iVar3)" identifier = (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(local_3c,iVar3)" ( identifier , identifier )))) ;) })) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_44);" (call_expression "printf(pcVar2,local_44)" identifier (argument_list "(pcVar2,local_44)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_24);" (call_expression "printf(pcVar2,local_24)" identifier (argument_list "(pcVar2,local_24)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,local_28);" (call_expression "printf(pcVar2,local_28)" identifier (argument_list "(pcVar2,local_28)" ( identifier , identifier ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar2 = (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(pcVar2,uVar9);" (call_expression "printf(pcVar2,uVar9)" identifier (argument_list "(pcVar2,uVar9)" ( identifier , identifier ))) ;) (if_statement "if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" if (parenthesized_expression "(local_1e < 2)" ( (binary_expression "local_1e < 2" identifier < number_literal) )) (compound_statement "{\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }" { (if_statement "if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar2 = "\n    Offset\tName\n";\n      }" { (expression_statement "pcVar2 = "\n    Offset\tName\n";" (assignment_expression "pcVar2 = "\n    Offset\tName\n"" identifier = (string_literal ""\n    Offset\tName\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" else (compound_statement "{\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" { (expression_statement "pcVar2 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar2 = "\n    Offset  Kind          Name\n"" identifier = (string_literal ""\n    Offset  Kind          Name\n"" " escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,pcVar2,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (do_statement "do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);" do (compound_statement "{\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      }" { (expression_statement "pcVar2 = pcVar13 + local_48;" (assignment_expression "pcVar2 = pcVar13 + local_48" identifier = (binary_expression "pcVar13 + local_48" identifier + identifier)) ;) (if_statement "if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" if (parenthesized_expression "(pcVar11 <= pcVar2)" ( (binary_expression "pcVar11 <= pcVar2" identifier <= identifier) )) (compound_statement "{\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" { (if_statement "if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" if (parenthesized_expression "((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8))" ( (binary_expression "(pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) && (parenthesized_expression "(((int)pcVar11 - (int)pcVar13) - 1U < 8)" ( (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U < 8" (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" ( (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) - number_literal) < number_literal) ))) )) (compound_statement "{\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" { (expression_statement "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);" (call_expression "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,(int)pcVar11 - (int)pcVar13)" ( identifier , (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) })) (break_statement "break;" break ;) })) (expression_statement "lVar14 = (*DAT_00073aec)(pcVar13,local_48);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar13,local_48)" identifier = (call_expression "(*DAT_00073aec)(pcVar13,local_48)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar13,local_48)" ( identifier , identifier )))) ;) (if_statement "if (lVar14 == 0) break;" if (parenthesized_expression "(lVar14 == 0)" ( (binary_expression "lVar14 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar2;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar2" identifier = (binary_expression "(int)pcVar11 - (int)pcVar2" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }" { (expression_statement "sVar5 = iVar3 - 1;" (assignment_expression "sVar5 = iVar3 - 1" identifier = (binary_expression "iVar3 - 1" identifier - number_literal)) ;) (expression_statement "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);" (call_expression "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" identifier (argument_list "("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" ( (string_literal ""    %-6lx\t%.*s\n"" " string_content escape_sequence string_content escape_sequence ") , (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" else (compound_statement "{\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" { (expression_statement "pcVar13 = pcVar2 + 1;" (assignment_expression "pcVar13 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "sVar5 = iVar3 - 2;" (assignment_expression "sVar5 = iVar3 - 2" identifier = (binary_expression "iVar3 - 2" identifier - number_literal)) ;) (expression_statement "iVar6 = param_3;" (assignment_expression "iVar6 = param_3" identifier = identifier) ;) (if_statement "if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" if (parenthesized_expression "((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8))" ( (binary_expression "(pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) || (parenthesized_expression "(iVar6 = iVar3, iVar3 - 1U < 8)" ( (comma_expression "iVar6 = iVar3, iVar3 - 1U < 8" (assignment_expression "iVar6 = iVar3" identifier = identifier) , (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" identifier - number_literal) < number_literal)) ))) )) (compound_statement "{\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }" { (expression_statement "iVar3 = (*DAT_00073aec)(pcVar2,iVar6);" (assignment_expression "iVar3 = (*DAT_00073aec)(pcVar2,iVar6)" identifier = (call_expression "(*DAT_00073aec)(pcVar2,iVar6)" (parenthesized_expression "(*DAT_00073aec)" ( (pointer_expression "*DAT_00073aec" * identifier) )) (argument_list "(pcVar2,iVar6)" ( identifier , identifier )))) ;) (expression_statement "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);" (assignment_expression "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" identifier = (cast_expression "(char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" identifier (argument_list "(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" ( number_literal , (pointer_expression "*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" * (cast_expression "(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" ( (binary_expression "&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (pointer_expression "&DAT_0006f2c0" & identifier) + (binary_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (parenthesized_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7)" ( (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c" (call_expression "(uint)(iVar3 << 0x18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 << 0x18)" ( (binary_expression "iVar3 << 0x18" identifier << number_literal) ))) >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal ))))) ;) (if_statement "if (-1 < iVar3 << 0x18) goto LAB_000337b4;" if (parenthesized_expression "(-1 < iVar3 << 0x18)" ( (binary_expression "-1 < iVar3 << 0x18" number_literal < (binary_expression "iVar3 << 0x18" identifier << number_literal)) )) (goto_statement "goto LAB_000337b4;" goto statement_identifier ;)) (expression_statement "pcVar2 = "s";" (assignment_expression "pcVar2 = "s"" identifier = (string_literal ""s"" " string_content ")) ;) }) (else_clause "else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" else (compound_statement "{\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" { (expression_statement "local_3c = (char *)dcgettext(0,"no info",5);" (assignment_expression "local_3c = (char *)dcgettext(0,"no info",5)" identifier = (cast_expression "(char *)dcgettext(0,"no info",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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_000337b4:\n            pcVar2 = "g";" statement_identifier : (expression_statement "pcVar2 = "g";" (assignment_expression "pcVar2 = "g"" identifier = (string_literal ""g"" " string_content ")) ;)) }))) (expression_statement "uVar9 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" identifier (argument_list "("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" ( (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" " string_content escape_sequence ") , (cast_expression "(int)lVar14" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar2 = pcVar13;" (assignment_expression "pcVar2 = pcVar13" identifier = identifier) ;) }))) (expression_statement "sVar5 = strnlen(pcVar2,sVar5);" (assignment_expression "sVar5 = strnlen(pcVar2,sVar5)" identifier = (call_expression "strnlen(pcVar2,sVar5)" identifier (argument_list "(pcVar2,sVar5)" ( identifier , identifier )))) ;) (expression_statement "pcVar13 = pcVar2 + sVar5 + 1;" (assignment_expression "pcVar13 = pcVar2 + sVar5 + 1" identifier = (binary_expression "pcVar2 + sVar5 + 1" (binary_expression "pcVar2 + sVar5" identifier + identifier) + number_literal)) ;) }) while (parenthesized_expression "(pcVar13 < pcVar11)" ( (binary_expression "pcVar13 < pcVar11" identifier < identifier) )) ;) }) (else_clause "else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" else (if_statement "if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" if (parenthesized_expression "(DAT_00071204 == 0)" ( (binary_expression "DAT_00071204 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" { (expression_statement "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (assignment_expression "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" identifier = (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(uVar9);" (call_expression "warn(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (expression_statement "DAT_00071204 = 1;" (assignment_expression "DAT_00071204 = 1" identifier = number_literal) ;) })))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression LIT < (binary_expression IDENT - LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))) <= (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression 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 TYPE) ) IDENT) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT)) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == IDENT) && (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (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 = (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT) < LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , 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 { (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 ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence string_content escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - LIT) < LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) })) (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 TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT - LIT) < LIT)) ))) )) (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 , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) >> 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 = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT , IDENT , 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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined4 __regparm3 FUN_00033370(int param_1,undefined4 param_2,int param_3)\n\n{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00033370(int param_1,undefined4 param_2,int param_3)" (identifier "FUN_00033370") (parameter_list "(int param_1,undefined4 param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  ulonglong uVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  size_t sVar5;\n  int iVar6;\n  undefined4 uVar7;\n  int *piVar8;\n  undefined4 uVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  char *pcVar13;\n  longlong lVar14;\n  int local_48;\n  int local_44;\n  char *local_3c;\n  int local_38;\n  uint local_28;\n  uint local_24;\n  ushort local_1e;\n  \n  pcVar10 = *(char **)(param_1 + 0x10);\n  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);\n  FUN_00030680();\n  FUN_0001cea0();\n  do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "ulonglong uVar1;" (type_identifier "ulonglong") (identifier "uVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "longlong lVar14;" (type_identifier "longlong") (identifier "lVar14") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "char *local_3c;" (primitive_type "char") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "ushort local_1e;" (type_identifier "ushort") (identifier "local_1e") (; ";")) (expression_statement "pcVar10 = *(char **)(param_1 + 0x10);" (assignment_expression "pcVar10 = *(char **)(param_1 + 0x10)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(param_1 + 0x10)" (* "*") (cast_expression "(char **)(param_1 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);" (assignment_expression "pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c)" (identifier "pcVar11") (= "=") (binary_expression "pcVar10 + *(int *)(param_1 + 0x1c)" (identifier "pcVar10") (+ "+") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "FUN_00030680();" (call_expression "FUN_00030680()" (identifier "FUN_00030680") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001cea0();" (call_expression "FUN_0001cea0()" (identifier "FUN_0001cea0") (argument_list "()" (( "(") () ")"))) (; ";")) (do_statement "do {\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }\n    local_3c = pcVar10 + 4;\n    if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }\n    iVar3 = (int)pcVar11 - (int)pcVar10;\n    if (iVar3 - 1U < 8) goto LAB_0003357a;\n    local_38 = 4;\n    local_48 = 4;\nLAB_000333e8:\n    local_44 = 0;\n    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n    uVar1 = (ulonglong)local_28;\nLAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);\n    if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;\n    pcVar13 = local_3c + 2;\n    pcVar10 = local_3c + local_44;\n    iVar3 = local_48;\n    if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }\n    if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }\nLAB_00033498:\n    local_3c = pcVar13 + local_48;\n    pcVar13 = local_3c + local_48;\n    iVar3 = local_48;\n    if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }\n    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);\n    printf(pcVar2,local_44);\n    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);\n    printf(pcVar2,local_24);\n    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);\n    printf(pcVar2,local_28);\n    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);\n    printf(pcVar2,uVar9);\n    if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }\n  }" ({ "{") (if_statement "if (pcVar11 <= pcVar10) {\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" (if "if") (parenthesized_expression "(pcVar11 <= pcVar10)" (( "(") (binary_expression "pcVar11 <= pcVar10" (identifier "pcVar11") (<= "<=") (identifier "pcVar10")) () ")")) (compound_statement "{\nLAB_000339a9:\n      putchar(10);\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_000339a9:\n      putchar(10);" (statement_identifier "LAB_000339a9") (: ":") (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 "local_3c = pcVar10 + 4;" (assignment_expression "local_3c = pcVar10 + 4" (identifier "local_3c") (= "=") (binary_expression "pcVar10 + 4" (identifier "pcVar10") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (local_3c < pcVar11) {\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" (if "if") (parenthesized_expression "(local_3c < pcVar11)" (( "(") (binary_expression "local_3c < pcVar11" (identifier "local_3c") (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\n      iVar3 = 4;\nLAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);\n      if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }\n      local_44 = (int)lVar14;\n      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);\n      uVar1 = lVar14 + (ulonglong)local_28;\n      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;\nLAB_00033961:\n      uVar4 = FUN_0001aec0(0);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);\n      warn(uVar7,uVar9,local_28 - local_38,uVar4);\n      goto LAB_000339a9;\n    }" ({ "{") (expression_statement "iVar3 = 4;" (assignment_expression "iVar3 = 4" (identifier "iVar3") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_0003357a:\n      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" (statement_identifier "LAB_0003357a") (: ":") (expression_statement "lVar14 = (*DAT_00073aec)(pcVar10,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar10,iVar3)" (identifier "lVar14") (= "=") (call_expression "(*DAT_00073aec)(pcVar10,iVar3)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(pcVar10,iVar3)" (( "(") (identifier "pcVar10") (, ",") (identifier "iVar3") () ")")))) (; ";"))) (if_statement "if (lVar14 == 0xffffffff) {\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }\n      else {\n        local_38 = 4;\n        local_48 = 4;\n      }" (if "if") (parenthesized_expression "(lVar14 == 0xffffffff)" (( "(") (binary_expression "lVar14 == 0xffffffff" (identifier "lVar14") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        pcVar10 = pcVar10 + 0xc;\n        if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }\n        lVar14 = (*DAT_00073aec)(local_3c,iVar3);\n        local_38 = 0xc;\n        local_48 = 8;\n        local_3c = pcVar10;\n      }" ({ "{") (expression_statement "pcVar10 = pcVar10 + 0xc;" (assignment_expression "pcVar10 = pcVar10 + 0xc" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + 0xc" (identifier "pcVar10") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (pcVar10 < pcVar11) {\n          iVar3 = 8;\n        }\n        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" (if "if") (parenthesized_expression "(pcVar10 < pcVar11)" (( "(") (binary_expression "pcVar10 < pcVar11" (identifier "pcVar10") (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\n          iVar3 = 8;\n        }" ({ "{") (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" (identifier "iVar3") (= "=") (number_literal "8")) (; ";")) (} "}")) (else_clause "else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" (else "else") (if_statement "if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" (if "if") (parenthesized_expression "((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U))" (( "(") (binary_expression "(pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" (parenthesized_expression "(pcVar11 <= local_3c)" (( "(") (binary_expression "pcVar11 <= local_3c" (identifier "pcVar11") (<= "<=") (identifier "local_3c")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)" (( "(") (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")))) (, ",") (binary_expression "7 < iVar3 - 1U" (number_literal "7") (< "<") (binary_expression "iVar3 - 1U" (identifier "iVar3") (- "-") (number_literal "1U")))) () ")"))) () ")")) (compound_statement "{\n          local_38 = 0xc;\n          local_48 = 8;\n          local_3c = pcVar10;\n          goto LAB_000333e8;\n        }" ({ "{") (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" (identifier "local_38") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" (identifier "local_48") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" (identifier "local_3c") (= "=") (identifier "pcVar10")) (; ";")) (goto_statement "goto LAB_000333e8;" (goto "goto") (statement_identifier "LAB_000333e8") (; ";")) (} "}"))))) (expression_statement "lVar14 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "lVar14 = (*DAT_00073aec)(local_3c,iVar3)" (identifier "lVar14") (= "=") (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(local_3c,iVar3)" (( "(") (identifier "local_3c") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "local_38 = 0xc;" (assignment_expression "local_38 = 0xc" (identifier "local_38") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "local_48 = 8;" (assignment_expression "local_48 = 8" (identifier "local_48") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_3c = pcVar10;" (assignment_expression "local_3c = pcVar10" (identifier "local_3c") (= "=") (identifier "pcVar10")) (; ";")) (} "}")) (else_clause "else {\n        local_38 = 4;\n        local_48 = 4;\n      }" (else "else") (compound_statement "{\n        local_38 = 4;\n        local_48 = 4;\n      }" ({ "{") (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" (identifier "local_38") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" (identifier "local_48") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "local_44 = (int)lVar14;" (assignment_expression "local_44 = (int)lVar14" (identifier "local_44") (= "=") (cast_expression "(int)lVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar14"))) (; ";")) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" (identifier "local_28") (= "=") (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar1 = lVar14 + (ulonglong)local_28;" (assignment_expression "uVar1 = lVar14 + (ulonglong)local_28" (identifier "uVar1") (= "=") (binary_expression "lVar14 + (ulonglong)local_28" (identifier "lVar14") (+ "+") (cast_expression "(ulonglong)local_28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_28")))) (; ";")) (if_statement "if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;" (if "if") (parenthesized_expression "((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20))" (( "(") (binary_expression "(uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)" (call_expression "(uint)((uint)uVar1 < local_28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar1 < local_28)" (( "(") (binary_expression "(uint)uVar1 < local_28" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (< "<") (identifier "local_28")) () ")"))) (<= "<=") (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (goto_statement "goto LAB_0003340b;" (goto "goto") (statement_identifier "LAB_0003340b") (; ";"))) (labeled_statement "LAB_00033961:\n      uVar4 = FUN_0001aec0(0);" (statement_identifier "LAB_00033961") (: ":") (expression_statement "uVar4 = FUN_0001aec0(0);" (assignment_expression "uVar4 = FUN_0001aec0(0)" (identifier "uVar4") (= "=") (call_expression "FUN_0001aec0(0)" (identifier "FUN_0001aec0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";"))) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);" (assignment_expression "uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5)" (identifier "uVar7") (= "=") (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(uVar7,uVar9,local_28 - local_38,uVar4);" (call_expression "warn(uVar7,uVar9,local_28 - local_38,uVar4)" (identifier "warn") (argument_list "(uVar7,uVar9,local_28 - local_38,uVar4)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar9") (, ",") (binary_expression "local_28 - local_38" (identifier "local_28") (- "-") (identifier "local_38")) (, ",") (identifier "uVar4") () ")"))) (; ";")) (goto_statement "goto LAB_000339a9;" (goto "goto") (statement_identifier "LAB_000339a9") (; ";")) (} "}"))) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar10;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar10" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar11 - (int)pcVar10" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar10")))) (; ";")) (if_statement "if (iVar3 - 1U < 8) goto LAB_0003357a;" (if "if") (parenthesized_expression "(iVar3 - 1U < 8)" (( "(") (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" (identifier "iVar3") (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_0003357a;" (goto "goto") (statement_identifier "LAB_0003357a") (; ";"))) (expression_statement "local_38 = 4;" (assignment_expression "local_38 = 4" (identifier "local_38") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_48 = 4;" (assignment_expression "local_48 = 4" (identifier "local_48") (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_000333e8:\n    local_44 = 0;" (statement_identifier "LAB_000333e8") (: ":") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_28 = (int)local_3c - *(int *)(param_1 + 0x10);" (assignment_expression "local_28 = (int)local_3c - *(int *)(param_1 + 0x10)" (identifier "local_28") (= "=") (binary_expression "(int)local_3c - *(int *)(param_1 + 0x10)" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (- "-") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar1 = (ulonglong)local_28;" (assignment_expression "uVar1 = (ulonglong)local_28" (identifier "uVar1") (= "=") (cast_expression "(ulonglong)local_28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_28"))) (; ";")) (labeled_statement "LAB_0003340b:\n    uVar12 = (uint)(uVar1 >> 0x20);" (statement_identifier "LAB_0003340b") (: ":") (expression_statement "uVar12 = (uint)(uVar1 >> 0x20);" (assignment_expression "uVar12 = (uint)(uVar1 >> 0x20)" (identifier "uVar12") (= "=") (call_expression "(uint)(uVar1 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 >> 0x20)" (( "(") (binary_expression "uVar1 >> 0x20" (identifier "uVar1") (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (if_statement "if (*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))\n    goto LAB_00033961;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))" (( "(") (binary_expression "*(uint *)(param_1 + 0x20) < uVar12 ||\n        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) < uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "uVar12")) (|| "||") (binary_expression "*(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (binary_expression "*(uint *)(param_1 + 0x20) - uVar12" (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (identifier "uVar12")) (< "<") (call_expression "(uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(param_1 + 0x1c) < (uint)uVar1)" (( "(") (binary_expression "*(uint *)(param_1 + 0x1c) < (uint)uVar1" (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1"))) () ")"))))) () ")")) (goto_statement "goto LAB_00033961;" (goto "goto") (statement_identifier "LAB_00033961") (; ";"))) (expression_statement "pcVar13 = local_3c + 2;" (assignment_expression "pcVar13 = local_3c + 2" (identifier "pcVar13") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar10 = local_3c + local_44;" (assignment_expression "pcVar10 = local_3c + local_44" (identifier "pcVar10") (= "=") (binary_expression "local_3c + local_44" (identifier "local_3c") (+ "+") (identifier "local_44"))) (; ";")) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" (identifier "iVar3") (= "=") (identifier "local_48")) (; ";")) (if_statement "if (pcVar13 < pcVar11) {\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }\n    else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" (if "if") (parenthesized_expression "(pcVar13 < pcVar11)" (( "(") (binary_expression "pcVar13 < pcVar11" (identifier "pcVar13") (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\n      local_1e = (*DAT_00073aec)(local_3c,2);\n      if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }\nLAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);\n    }" ({ "{") (expression_statement "local_1e = (*DAT_00073aec)(local_3c,2);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,2)" (identifier "local_1e") (= "=") (call_expression "(*DAT_00073aec)(local_3c,2)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(local_3c,2)" (( "(") (identifier "local_3c") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if (pcVar13 + local_48 < pcVar11) {\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }\n      else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" (if "if") (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" (( "(") (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" (identifier "pcVar13") (+ "+") (identifier "local_48")) (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\nLAB_000338c0:\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n      }" ({ "{") (labeled_statement "LAB_000338c0:\n        local_24 = (uint)local_1e;" (statement_identifier "LAB_000338c0") (: ":") (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" (identifier "local_24") (= "=") (cast_expression "(uint)local_1e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1e"))) (; ";"))) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" (identifier "local_1e") (= "=") (binary_expression "local_1e - 2" (identifier "local_1e") (- "-") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" (else "else") (compound_statement "{\n        local_24 = (uint)local_1e;\n        local_1e = local_1e - 2;\n        iVar3 = (int)pcVar11 - (int)pcVar13;\n        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;\n      }" ({ "{") (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" (identifier "local_24") (= "=") (cast_expression "(uint)local_1e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1e"))) (; ";")) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" (identifier "local_1e") (= "=") (binary_expression "local_1e - 2" (identifier "local_1e") (- "-") (number_literal "2"))) (; ";")) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar13;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar13" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13")))) (; ";")) (if_statement "if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;" (if "if") (parenthesized_expression "(7 < ((int)pcVar11 - (int)pcVar13) - 1U)" (( "(") (binary_expression "7 < ((int)pcVar11 - (int)pcVar13) - 1U" (number_literal "7") (< "<") (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" (( "(") (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")")) (- "-") (number_literal "1U"))) () ")")) (goto_statement "goto LAB_00033660;" (goto "goto") (statement_identifier "LAB_00033660") (; ";"))) (} "}")))) (labeled_statement "LAB_00033478:\n      local_28 = (*DAT_00073aec)(pcVar13,iVar3);" (statement_identifier "LAB_00033478") (: ":") (expression_statement "local_28 = (*DAT_00073aec)(pcVar13,iVar3);" (assignment_expression "local_28 = (*DAT_00073aec)(pcVar13,iVar3)" (identifier "local_28") (= "=") (call_expression "(*DAT_00073aec)(pcVar13,iVar3)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(pcVar13,iVar3)" (( "(") (identifier "pcVar13") (, ",") (identifier "iVar3") () ")")))) (; ";"))) (} "}")) (else_clause "else if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" (else "else") (if_statement "if (local_3c < pcVar11) {\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }\n    else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" (if "if") (parenthesized_expression "(local_3c < pcVar11)" (( "(") (binary_expression "local_3c < pcVar11" (identifier "local_3c") (< "<") (identifier "pcVar11")) () ")")) (compound_statement "{\n      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;\n      if (7 < uVar12) goto LAB_0003344a;\n      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);\n      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;\n      local_24 = (uint)local_1e;\n      local_1e = local_1e - 2;\n      local_28 = 0;\n    }" ({ "{") (expression_statement "uVar12 = ((int)pcVar11 - (int)local_3c) - 1;" (assignment_expression "uVar12 = ((int)pcVar11 - (int)local_3c) - 1" (identifier "uVar12") (= "=") (binary_expression "((int)pcVar11 - (int)local_3c) - 1" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" (( "(") (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) () ")")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (7 < uVar12) goto LAB_0003344a;" (if "if") (parenthesized_expression "(7 < uVar12)" (( "(") (binary_expression "7 < uVar12" (number_literal "7") (< "<") (identifier "uVar12")) () ")")) (goto_statement "goto LAB_0003344a;" (goto "goto") (statement_identifier "LAB_0003344a") (; ";"))) (expression_statement "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);" (assignment_expression "local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" (identifier "local_1e") (= "=") (call_expression "(*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12)" (( "(") (identifier "local_3c") (, ",") (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) (, ",") (identifier "uVar12") (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;" (if "if") (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" (( "(") (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" (identifier "pcVar13") (+ "+") (identifier "local_48")) (< "<") (identifier "pcVar11")) () ")")) (goto_statement "goto LAB_000338c0;" (goto "goto") (statement_identifier "LAB_000338c0") (; ";"))) (expression_statement "local_24 = (uint)local_1e;" (assignment_expression "local_24 = (uint)local_1e" (identifier "local_24") (= "=") (cast_expression "(uint)local_1e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1e"))) (; ";")) (expression_statement "local_1e = local_1e - 2;" (assignment_expression "local_1e = local_1e - 2" (identifier "local_1e") (= "=") (binary_expression "local_1e - 2" (identifier "local_1e") (- "-") (number_literal "2"))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" (else "else") (compound_statement "{\nLAB_0003344a:\n      local_24 = 0;\n      local_1e = 0xfffe;\n      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;\nLAB_00033660:\n      local_28 = 0;\n    }" ({ "{") (labeled_statement "LAB_0003344a:\n      local_24 = 0;" (statement_identifier "LAB_0003344a") (: ":") (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_1e = 0xfffe;" (assignment_expression "local_1e = 0xfffe" (identifier "local_1e") (= "=") (number_literal "0xfffe")) (; ";")) (if_statement "if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;" (if "if") (parenthesized_expression "(pcVar13 + local_48 < pcVar11)" (( "(") (binary_expression "pcVar13 + local_48 < pcVar11" (binary_expression "pcVar13 + local_48" (identifier "pcVar13") (+ "+") (identifier "local_48")) (< "<") (identifier "pcVar11")) () ")")) (goto_statement "goto LAB_00033478;" (goto "goto") (statement_identifier "LAB_00033478") (; ";"))) (labeled_statement "LAB_00033660:\n      local_28 = 0;" (statement_identifier "LAB_00033660") (: ":") (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";"))) (} "}")))))) (if_statement "if (DAT_00073928 - 1U < 0xfffffffe) {\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" (if "if") (parenthesized_expression "(DAT_00073928 - 1U < 0xfffffffe)" (( "(") (binary_expression "DAT_00073928 - 1U < 0xfffffffe" (binary_expression "DAT_00073928 - 1U" (identifier "DAT_00073928") (- "-") (number_literal "1U")) (< "<") (number_literal "0xfffffffe")) () ")")) (compound_statement "{\n      iVar3 = 0;\n      piVar8 = (int *)(DAT_00073920 + 0xc);\n      do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);\n      uVar9 = *(undefined4 *)(param_1 + 8);\n      uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);\n      warn(uVar4,local_28,uVar9);\n    }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = (int *)(DAT_00073920 + 0xc);" (assignment_expression "piVar8 = (int *)(DAT_00073920 + 0xc)" (identifier "piVar8") (= "=") (cast_expression "(int *)(DAT_00073920 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00073920 + 0xc)" (( "(") (binary_expression "DAT_00073920 + 0xc" (identifier "DAT_00073920") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (do_statement "do {\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      } while (DAT_00073928 != iVar3);" (do "do") (compound_statement "{\n        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;\n        iVar3 = iVar3 + 1;\n        piVar8 = piVar8 + 0x14;\n      }" ({ "{") (if_statement "if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;" (if "if") (parenthesized_expression "(*piVar8 == local_28 && piVar8[1] == 0)" (( "(") (binary_expression "*piVar8 == local_28 && piVar8[1] == 0" (binary_expression "*piVar8 == local_28" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (== "==") (identifier "local_28")) (&& "&&") (binary_expression "piVar8[1] == 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00033498;" (goto "goto") (statement_identifier "LAB_00033498") (; ";"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar8 = piVar8 + 0x14;" (assignment_expression "piVar8 = piVar8 + 0x14" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 0x14" (identifier "piVar8") (+ "+") (number_literal "0x14"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(DAT_00073928 != iVar3)" (( "(") (binary_expression "DAT_00073928 != iVar3" (identifier "DAT_00073928") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar9 = *(undefined4 *)(param_1 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5);" (assignment_expression "uVar4 = dcgettext(0,\n                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"\n                        ,5)" (identifier "uVar4") (= "=") (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(uVar4,local_28,uVar9);" (call_expression "warn(uVar4,local_28,uVar9)" (identifier "warn") (argument_list "(uVar4,local_28,uVar9)" (( "(") (identifier "uVar4") (, ",") (identifier "local_28") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00033498:\n    local_3c = pcVar13 + local_48;" (statement_identifier "LAB_00033498") (: ":") (expression_statement "local_3c = pcVar13 + local_48;" (assignment_expression "local_3c = pcVar13 + local_48" (identifier "local_3c") (= "=") (binary_expression "pcVar13 + local_48" (identifier "pcVar13") (+ "+") (identifier "local_48"))) (; ";"))) (expression_statement "pcVar13 = local_3c + local_48;" (assignment_expression "pcVar13 = local_3c + local_48" (identifier "pcVar13") (= "=") (binary_expression "local_3c + local_48" (identifier "local_3c") (+ "+") (identifier "local_48"))) (; ";")) (expression_statement "iVar3 = local_48;" (assignment_expression "iVar3 = local_48" (identifier "iVar3") (= "=") (identifier "local_48")) (; ";")) (if_statement "if ((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" (if "if") (parenthesized_expression "((pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))))" (( "(") (binary_expression "(pcVar13 < pcVar11) ||\n       ((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" (parenthesized_expression "(pcVar13 < pcVar11)" (( "(") (binary_expression "pcVar13 < pcVar11" (identifier "pcVar13") (< "<") (identifier "pcVar11")) () ")")) (|| "||") (parenthesized_expression "((uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))" (( "(") (parenthesized_expression "(uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8))" (( "(") (comma_expression "uVar9 = 0, local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (, ",") (binary_expression "local_3c < pcVar11 &&\n        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (binary_expression "local_3c < pcVar11" (identifier "local_3c") (< "<") (identifier "pcVar11")) (&& "&&") (parenthesized_expression "(iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)" (( "(") (comma_expression "iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8" (assignment_expression "iVar3 = (int)pcVar11 - (int)local_3c" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")))) (, ",") (binary_expression "((int)pcVar11 - (int)local_3c) - 1U < 8" (binary_expression "((int)pcVar11 - (int)local_3c) - 1U" (parenthesized_expression "((int)pcVar11 - (int)local_3c)" (( "(") (binary_expression "(int)pcVar11 - (int)local_3c" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar9 = (*DAT_00073aec)(local_3c,iVar3);\n    }" ({ "{") (expression_statement "uVar9 = (*DAT_00073aec)(local_3c,iVar3);" (assignment_expression "uVar9 = (*DAT_00073aec)(local_3c,iVar3)" (identifier "uVar9") (= "=") (call_expression "(*DAT_00073aec)(local_3c,iVar3)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(local_3c,iVar3)" (( "(") (identifier "local_3c") (, ",") (identifier "iVar3") () ")")))) (; ";")) (} "}"))) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5)" (identifier "pcVar2") (= "=") (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(pcVar2,local_44);" (call_expression "printf(pcVar2,local_44)" (identifier "printf") (argument_list "(pcVar2,local_44)" (( "(") (identifier "pcVar2") (, ",") (identifier "local_44") () ")"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5)" (identifier "pcVar2") (= "=") (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(pcVar2,local_24);" (call_expression "printf(pcVar2,local_24)" (identifier "printf") (argument_list "(pcVar2,local_24)" (( "(") (identifier "pcVar2") (, ",") (identifier "local_24") () ")"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5)" (identifier "pcVar2") (= "=") (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(pcVar2,local_28);" (call_expression "printf(pcVar2,local_28)" (identifier "printf") (argument_list "(pcVar2,local_28)" (( "(") (identifier "pcVar2") (, ",") (identifier "local_28") () ")"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5)" (identifier "pcVar2") (= "=") (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(pcVar2,uVar9);" (call_expression "printf(pcVar2,uVar9)" (identifier "printf") (argument_list "(pcVar2,uVar9)" (( "(") (identifier "pcVar2") (, ",") (identifier "uVar9") () ")"))) (; ";")) (if_statement "if (local_1e < 2) {\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }\n    else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" (if "if") (parenthesized_expression "(local_1e < 2)" (( "(") (binary_expression "local_1e < 2" (identifier "local_1e") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }\n      pcVar2 = (char *)dcgettext(0,pcVar2,5);\n      printf(pcVar2);\n      do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);\n    }" ({ "{") (if_statement "if (param_3 == 0) {\n        pcVar2 = "\n    Offset\tName\n";\n      }\n      else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar2 = "\n    Offset\tName\n";\n      }" ({ "{") (expression_statement "pcVar2 = "\n    Offset\tName\n";" (assignment_expression "pcVar2 = "\n    Offset\tName\n"" (identifier "pcVar2") (= "=") (string_literal ""\n    Offset\tName\n"" (" """) (escape_sequence "\n") (string_content "    Offset") (escape_sequence "\t") (string_content "Name") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" (else "else") (compound_statement "{\n        pcVar2 = "\n    Offset  Kind          Name\n";\n      }" ({ "{") (expression_statement "pcVar2 = "\n    Offset  Kind          Name\n";" (assignment_expression "pcVar2 = "\n    Offset  Kind          Name\n"" (identifier "pcVar2") (= "=") (string_literal ""\n    Offset  Kind          Name\n"" (" """) (escape_sequence "\n") (string_content "    Offset  Kind          Name") (escape_sequence "\n") (" """))) (; ";")) (} "}")))) (expression_statement "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,pcVar2,5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,pcVar2,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" (identifier "printf") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (do_statement "do {\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      } while (pcVar13 < pcVar11);" (do "do") (compound_statement "{\n        pcVar2 = pcVar13 + local_48;\n        if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }\n        lVar14 = (*DAT_00073aec)(pcVar13,local_48);\n        if (lVar14 == 0) break;\n        iVar3 = (int)pcVar11 - (int)pcVar2;\n        if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }\n        sVar5 = strnlen(pcVar2,sVar5);\n        pcVar13 = pcVar2 + sVar5 + 1;\n      }" ({ "{") (expression_statement "pcVar2 = pcVar13 + local_48;" (assignment_expression "pcVar2 = pcVar13 + local_48" (identifier "pcVar2") (= "=") (binary_expression "pcVar13 + local_48" (identifier "pcVar13") (+ "+") (identifier "local_48"))) (; ";")) (if_statement "if (pcVar11 <= pcVar2) {\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(pcVar11 <= pcVar2)" (( "(") (binary_expression "pcVar11 <= pcVar2" (identifier "pcVar11") (<= "<=") (identifier "pcVar2")) () ")")) (compound_statement "{\n          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }\n          break;\n        }" ({ "{") (if_statement "if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" (if "if") (parenthesized_expression "((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8))" (( "(") (binary_expression "(pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" (( "(") (binary_expression "pcVar13 < pcVar11" (identifier "pcVar13") (< "<") (identifier "pcVar11")) () ")")) (&& "&&") (parenthesized_expression "(((int)pcVar11 - (int)pcVar13) - 1U < 8)" (( "(") (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U < 8" (binary_expression "((int)pcVar11 - (int)pcVar13) - 1U" (parenthesized_expression "((int)pcVar11 - (int)pcVar13)" (( "(") (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")")) (- "-") (number_literal "1U")) (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);\n          }" ({ "{") (expression_statement "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);" (call_expression "(*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(pcVar13,(int)pcVar11 - (int)pcVar13)" (( "(") (identifier "pcVar13") (, ",") (binary_expression "(int)pcVar11 - (int)pcVar13" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar13"))) () ")"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "lVar14 = (*DAT_00073aec)(pcVar13,local_48);" (assignment_expression "lVar14 = (*DAT_00073aec)(pcVar13,local_48)" (identifier "lVar14") (= "=") (call_expression "(*DAT_00073aec)(pcVar13,local_48)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(pcVar13,local_48)" (( "(") (identifier "pcVar13") (, ",") (identifier "local_48") () ")")))) (; ";")) (if_statement "if (lVar14 == 0) break;" (if "if") (parenthesized_expression "(lVar14 == 0)" (( "(") (binary_expression "lVar14 == 0" (identifier "lVar14") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = (int)pcVar11 - (int)pcVar2;" (assignment_expression "iVar3 = (int)pcVar11 - (int)pcVar2" (identifier "iVar3") (= "=") (binary_expression "(int)pcVar11 - (int)pcVar2" (cast_expression "(int)pcVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(int)pcVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar2")))) (; ";")) (if_statement "if (param_3 == 0) {\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }\n        else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          sVar5 = iVar3 - 1;\n          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);\n        }" ({ "{") (expression_statement "sVar5 = iVar3 - 1;" (assignment_expression "sVar5 = iVar3 - 1" (identifier "sVar5") (= "=") (binary_expression "iVar3 - 1" (identifier "iVar3") (- "-") (number_literal "1"))) (; ";")) (expression_statement "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);" (call_expression "printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" (identifier "printf") (argument_list "("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2)" (( "(") (string_literal ""    %-6lx\t%.*s\n"" (" """) (string_content "    %-6lx") (escape_sequence "\t") (string_content "%.*s") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(int)lVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar14")) (, ",") (identifier "sVar5") (, ",") (identifier "pcVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" (else "else") (compound_statement "{\n          pcVar13 = pcVar2 + 1;\n          sVar5 = iVar3 - 2;\n          iVar6 = param_3;\n          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }\n          uVar9 = dcgettext(0,pcVar2,5);\n          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);\n          pcVar2 = pcVar13;\n        }" ({ "{") (expression_statement "pcVar13 = pcVar2 + 1;" (assignment_expression "pcVar13 = pcVar2 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sVar5 = iVar3 - 2;" (assignment_expression "sVar5 = iVar3 - 2" (identifier "sVar5") (= "=") (binary_expression "iVar3 - 2" (identifier "iVar3") (- "-") (number_literal "2"))) (; ";")) (expression_statement "iVar6 = param_3;" (assignment_expression "iVar6 = param_3" (identifier "iVar6") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }\n          else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" (if "if") (parenthesized_expression "((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8))" (( "(") (binary_expression "(pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)" (parenthesized_expression "(pcVar13 < pcVar11)" (( "(") (binary_expression "pcVar13 < pcVar11" (identifier "pcVar13") (< "<") (identifier "pcVar11")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = iVar3, iVar3 - 1U < 8)" (( "(") (comma_expression "iVar6 = iVar3, iVar3 - 1U < 8" (assignment_expression "iVar6 = iVar3" (identifier "iVar6") (= "=") (identifier "iVar3")) (, ",") (binary_expression "iVar3 - 1U < 8" (binary_expression "iVar3 - 1U" (identifier "iVar3") (- "-") (number_literal "1U")) (< "<") (number_literal "8"))) () ")"))) () ")")) (compound_statement "{\n            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);\n            local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);\n            if (-1 < iVar3 << 0x18) goto LAB_000337b4;\n            pcVar2 = "s";\n          }" ({ "{") (expression_statement "iVar3 = (*DAT_00073aec)(pcVar2,iVar6);" (assignment_expression "iVar3 = (*DAT_00073aec)(pcVar2,iVar6)" (identifier "iVar3") (= "=") (call_expression "(*DAT_00073aec)(pcVar2,iVar6)" (parenthesized_expression "(*DAT_00073aec)" (( "(") (pointer_expression "*DAT_00073aec" (* "*") (identifier "DAT_00073aec")) () ")")) (argument_list "(pcVar2,iVar6)" (( "(") (identifier "pcVar2") (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5);" (assignment_expression "local_3c = (char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" (identifier "dcgettext") (argument_list "(0,*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            ),5)" (( "(") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" (* "*") (cast_expression "(undefined4 *)\n                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4\n                                            )" (( "(") (binary_expression "&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (pointer_expression "&DAT_0006f2c0" (& "&") (identifier "DAT_0006f2c0")) (+ "+") (binary_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4" (parenthesized_expression "((uint)(iVar3 << 0x18) >> 0x1c & 7)" (( "(") (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c & 7" (binary_expression "(uint)(iVar3 << 0x18) >> 0x1c" (call_expression "(uint)(iVar3 << 0x18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar3 << 0x18)" (( "(") (binary_expression "iVar3 << 0x18" (identifier "iVar3") (<< "<<") (number_literal "0x18")) () ")"))) (>> ">>") (number_literal "0x1c")) (& "&") (number_literal "7")) () ")")) (* "*") (number_literal "4"))) () ")")))) (, ",") (number_literal "5") () ")"))))) (; ";")) (if_statement "if (-1 < iVar3 << 0x18) goto LAB_000337b4;" (if "if") (parenthesized_expression "(-1 < iVar3 << 0x18)" (( "(") (binary_expression "-1 < iVar3 << 0x18" (number_literal "-1") (< "<") (binary_expression "iVar3 << 0x18" (identifier "iVar3") (<< "<<") (number_literal "0x18"))) () ")")) (goto_statement "goto LAB_000337b4;" (goto "goto") (statement_identifier "LAB_000337b4") (; ";"))) (expression_statement "pcVar2 = "s";" (assignment_expression "pcVar2 = "s"" (identifier "pcVar2") (= "=") (string_literal ""s"" (" """) (string_content "s") (" """))) (; ";")) (} "}")) (else_clause "else {\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" (else "else") (compound_statement "{\n            local_3c = (char *)dcgettext(0,"no info",5);\nLAB_000337b4:\n            pcVar2 = "g";\n          }" ({ "{") (expression_statement "local_3c = (char *)dcgettext(0,"no info",5);" (assignment_expression "local_3c = (char *)dcgettext(0,"no info",5)" (identifier "local_3c") (= "=") (cast_expression "(char *)dcgettext(0,"no info",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (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_000337b4:\n            pcVar2 = "g";" (statement_identifier "LAB_000337b4") (: ":") (expression_statement "pcVar2 = "g";" (assignment_expression "pcVar2 = "g"" (identifier "pcVar2") (= "=") (string_literal ""g"" (" """) (string_content "g") (" """))) (; ";"))) (} "}")))) (expression_statement "uVar9 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar2,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);" (call_expression "printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" (identifier "printf") (argument_list "("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13)" (( "(") (string_literal ""    %-6lx  %s,%-10s  %.*s\n"" (" """) (string_content "    %-6lx  %s,%-10s  %.*s") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(int)lVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar14")) (, ",") (identifier "uVar9") (, ",") (identifier "local_3c") (, ",") (identifier "sVar5") (, ",") (identifier "pcVar13") () ")"))) (; ";")) (expression_statement "pcVar2 = pcVar13;" (assignment_expression "pcVar2 = pcVar13" (identifier "pcVar2") (= "=") (identifier "pcVar13")) (; ";")) (} "}")))) (expression_statement "sVar5 = strnlen(pcVar2,sVar5);" (assignment_expression "sVar5 = strnlen(pcVar2,sVar5)" (identifier "sVar5") (= "=") (call_expression "strnlen(pcVar2,sVar5)" (identifier "strnlen") (argument_list "(pcVar2,sVar5)" (( "(") (identifier "pcVar2") (, ",") (identifier "sVar5") () ")")))) (; ";")) (expression_statement "pcVar13 = pcVar2 + sVar5 + 1;" (assignment_expression "pcVar13 = pcVar2 + sVar5 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar2 + sVar5 + 1" (binary_expression "pcVar2 + sVar5" (identifier "pcVar2") (+ "+") (identifier "sVar5")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar13 < pcVar11)" (( "(") (binary_expression "pcVar13 < pcVar11" (identifier "pcVar13") (< "<") (identifier "pcVar11")) () ")")) (; ";")) (} "}")) (else_clause "else if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" (else "else") (if_statement "if (DAT_00071204 == 0) {\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" (if "if") (parenthesized_expression "(DAT_00071204 == 0)" (( "(") (binary_expression "DAT_00071204 == 0" (identifier "DAT_00071204") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);\n      warn(uVar9);\n      DAT_00071204 = 1;\n    }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);" (assignment_expression "uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5)" (identifier "uVar9") (= "=") (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(uVar9);" (call_expression "warn(uVar9)" (identifier "warn") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "DAT_00071204 = 1;" (assignment_expression "DAT_00071204 = 1" (identifier "DAT_00071204") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *section,void *file,int var_24)

{
  type_2 var_19;
  char *pcVar2;
  type_3 *var_18;
  type_3 *var_8;
  char *pcVar5;
  int var_26;
  type_4 uVar7;
  size_t var_29;
  int iVar9;
  char *message;
  type_1 *section_1;
  type_5 *var_21;
  type_3 *var_1;
  type_3 *var_4;
  type_2 var_11;
  type_2 var_12;
  type_6 var_25;
  type_6 eVar16;
  char *in_stack_ffffffa8;
  void *in_stack_ffffffb4;
  type_3 *local_48;
  type_7 var_7;
  type_3 *var_6;
  int var_17;
  type_2 var_9;
  type_2 local_24;
  type_8 var_23;
  
  var_1 = section->start;
  var_4 = var_1 + (int)section->size;
  var_2(in_stack_ffffffb4);
  var_3((type_1 *)section->name,(bfd_boolean)&section->filename,section_1);
  do {
    if (var_4 <= var_1) {
LAB_000339a9:
      var_5(10);
      return 1;
    }
    var_6 = var_1 + 4;
    if (var_6 < var_4) {
      var_18 = (type_3 *)0x4;
LAB_0003357a:
      var_7 = (*byte_get)(var_1,(int)var_18);
      if (var_7 == 0xffffffff) {
        var_1 = var_1 + 0xc;
        if (var_1 < var_4) {
          var_8 = (type_3 *)0x8;
        }
        else if ((var_4 <= var_6) ||
                (var_8 = var_4 + -(int)var_6, (type_3 *)0x7 < var_8 + -1)) {
          var_17 = 0xc;
          local_48 = (type_3 *)0x8;
          var_6 = var_1;
          goto LAB_000333e8;
        }
        var_7 = (*byte_get)(var_6,(int)var_8);
        var_17 = 0xc;
        local_48 = (type_3 *)0x8;
        var_18 = var_8;
        var_6 = var_1;
      }
      else {
        var_17 = 4;
        local_48 = (type_3 *)0x4;
      }
      var_9 = (int)var_6 - (int)section->start;
      var_11 = (type_2)var_7 + var_9;
      var_12 = var_7._4_4_ + (type_2)var_10((type_2)var_7,var_9);
      if ((var_11 < var_9) <= var_12) goto LAB_0003340b;
LAB_00033961:
      pcVar5 = var_13("x",var_14(var_18) << 0x20,(type_2)var_7);
      pcVar2 = section->name;
      message = (char *)var_15(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      var_16(message,pcVar2,var_9 - var_17,pcVar5);
      goto LAB_000339a9;
    }
    var_18 = var_4 + -(int)var_1;
    if (var_18 + -1 < (type_3 *)0x8) goto LAB_0003357a;
    var_17 = 4;
    local_48 = (type_3 *)0x4;
    var_18 = (type_3 *)in_stack_ffffffa8;
LAB_000333e8:
    var_7 = 0;
    var_11 = (int)var_6 - (int)section->start;
    var_12 = 0;
    var_9 = var_11;
LAB_0003340b:
    var_19 = *(type_2 *)((int)&section->size + 4);
    if (var_19 < var_12 || var_19 - var_12 < (type_2)((type_2)section->size < var_11)) goto LAB_00033961;
    var_18 = var_6 + 2;
    var_1 = var_6 + (type_2)var_7;
    var_8 = local_48;
    if (var_18 < var_4) {
      var_25 = (*byte_get)(var_6,2);
      var_11 = (type_2)var_25;
      if (var_18 + (int)local_48 < var_4) {
LAB_000338c0:
        local_24 = var_11 & 0xffff;
        var_23 = (short)var_11 - 2;
      }
      else {
        local_24 = var_11 & 0xffff;
        var_23 = (short)var_25 - 2;
        var_8 = var_4 + -(int)var_18;
        if ((type_3 *)0x7 < var_4 + -(int)var_18 + -1) goto LAB_00033660;
      }
LAB_00033478:
      var_25 = (*byte_get)(var_18,(int)var_8);
      var_9 = (type_2)var_25;
    }
    else if ((var_6 < var_4) && (((int)var_4 - (int)var_6) - 1U < 8)) {
      var_25 = (*byte_get)(var_6,(int)var_4 - (int)var_6);
      var_11 = (type_2)var_25;
      if (var_18 + (int)local_48 < var_4) goto LAB_000338c0;
      local_24 = var_11 & 0xffff;
      var_23 = (short)var_25 - 2;
      var_9 = 0;
    }
    else {
      local_24 = 0;
      var_23 = 0xfffe;
      if (var_18 + (int)local_48 < var_4) goto LAB_00033478;
LAB_00033660:
      var_9 = 0;
    }
    if (var_20 - 1 < 0xfffffffe) {
      var_11 = 0;
      var_21 = &debug_information->cu_offset;
      do {
        if ((int)*var_21 == var_9 && *(int *)((int)var_21 + 4) == 0) goto LAB_00033498;
        var_11 = var_11 + 1;
        var_21 = var_21 + 10;
      } while (var_20 != var_11);
      pcVar2 = section->name;
      pcVar5 = (char *)var_15(0,
                                 ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                                 ,5);
      var_16(pcVar5,var_9,pcVar2);
    }
LAB_00033498:
    var_6 = var_18 + (int)local_48;
    var_18 = var_6 + (int)local_48;
    var_8 = local_48;
    if ((var_18 < var_4) ||
       ((in_stack_ffffffa8 = (char *)0x0, var_6 < var_4 &&
        (var_8 = var_4 + -(int)var_6, var_4 + -(int)var_6 + -1 < (type_3 *)0x8)))) {
      var_25 = (*byte_get)(var_6,(int)var_8);
      in_stack_ffffffa8 = (char *)var_25;
    }
    pcVar2 = (char *)var_15(0,"  Length:                              %ld\n",5);
    var_22(pcVar2,(type_2)var_7);
    pcVar2 = (char *)var_15(0,"  Version:                             %d\n",5);
    var_22(pcVar2,local_24);
    pcVar2 = (char *)var_15(0,"  Offset into .debug_info section:     0x%lx\n",5);
    var_22(pcVar2,var_9);
    pcVar2 = (char *)var_15(0,"  Size of area in .debug_info section: %ld\n",5);
    var_22(pcVar2);
    if (var_23 < 2) {
      if (var_24 == 0) {
        in_stack_ffffffa8 = "\n    Offset\tName\n";
      }
      else {
        in_stack_ffffffa8 = "\n    Offset  Kind          Name\n";
      }
      pcVar2 = (char *)var_15(0,in_stack_ffffffa8,5);
      var_22(pcVar2);
      do {
        var_8 = var_18 + (int)local_48;
        if (var_4 <= var_8) {
          if ((var_18 < var_4) && (var_8 = var_4 + -(int)var_18, var_8 + -1 < (type_3 *)0x8)) {
            (*byte_get)(var_18,(int)var_8);
            in_stack_ffffffa8 = (char *)var_8;
          }
          break;
        }
        in_stack_ffffffa8 = (char *)local_48;
        var_25 = (*byte_get)(var_18,(int)local_48);
        if (var_25 == 0) break;
        var_26 = (int)var_4 - (int)var_8;
        if (var_24 == 0) {
          in_stack_ffffffa8 = (char *)(var_26 + -1);
          var_22("    %-6lx\t%.*s\n",(int)var_25,in_stack_ffffffa8,var_8);
        }
        else {
          var_18 = var_8 + 1;
          in_stack_ffffffa8 = (char *)(var_26 + -2);
          iVar9 = var_24;
          if ((var_18 < var_4) || (iVar9 = var_26, var_26 - 1U < 8)) {
            eVar16 = (*byte_get)(var_8,iVar9);
            var_11 = (int)eVar16 << 0x18;
            var_6 = (type_3 *)var_15(0,*(type_4 *)(var_27 + (var_11 >> 0x1c & 7) * 4),
                                          5);
            if (-1 < (int)var_11) goto LAB_000337b4;
            pcVar2 = "s";
          }
          else {
            var_6 = (type_3 *)var_15(0,"no info",5);
LAB_000337b4:
            pcVar2 = "g";
          }
          uVar7 = var_15(0,pcVar2,5);
          var_22("    %-6lx  %s,%-10s  %.*s\n",(int)var_25,uVar7,var_6,in_stack_ffffffa8,var_18);
          var_8 = var_18;
        }
        var_29 = var_28((char *)var_8,(size_t)in_stack_ffffffa8);
        var_18 = var_8 + var_29 + 1;
      } while (var_18 < var_4);
    }
    else if (function_1::lexical_block_6::lexical_block_6_9::warned == 0) {
      in_stack_ffffffa8 = "Only DWARF 2 and 3 pubnames are currently supported\n";
      pcVar2 = (char *)var_15(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      var_16(pcVar2);
      display_debug_pubnames_worker::lexical_block_6::lexical_block_6_9::warned = 1;
    }
  } while( true );
}


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

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

undefined4 __regparm3 MASKED(int param_1,undefined4 param_2,int param_3)

{
  ulonglong uVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  size_t sVar5;
  int iVar6;
  undefined4 uVar7;
  int *piVar8;
  undefined4 uVar9;
  char *pcVar10;
  char *pcVar11;
  uint uVar12;
  char *pcVar13;
  longlong lVar14;
  int local_48;
  int local_44;
  char *local_3c;
  int local_38;
  uint local_28;
  uint local_24;
  ushort local_1e;
  
  pcVar10 = *(char **)(param_1 + 0x10);
  pcVar11 = pcVar10 + *(int *)(param_1 + 0x1c);
  FUN_00030680();
  FUN_0001cea0();
  do {
    if (pcVar11 <= pcVar10) {
LAB_000339a9:
      putchar(10);
      return 1;
    }
    local_3c = pcVar10 + 4;
    if (local_3c < pcVar11) {
      iVar3 = 4;
LAB_0003357a:
      lVar14 = (*DAT_00073aec)(pcVar10,iVar3);
      if (lVar14 == 0xffffffff) {
        pcVar10 = pcVar10 + 0xc;
        if (pcVar10 < pcVar11) {
          iVar3 = 8;
        }
        else if ((pcVar11 <= local_3c) || (iVar3 = (int)pcVar11 - (int)local_3c, 7 < iVar3 - 1U)) {
          local_38 = 0xc;
          local_48 = 8;
          local_3c = pcVar10;
          goto LAB_000333e8;
        }
        lVar14 = (*DAT_00073aec)(local_3c,iVar3);
        local_38 = 0xc;
        local_48 = 8;
        local_3c = pcVar10;
      }
      else {
        local_38 = 4;
        local_48 = 4;
      }
      local_44 = (int)lVar14;
      local_28 = (int)local_3c - *(int *)(param_1 + 0x10);
      uVar1 = lVar14 + (ulonglong)local_28;
      if ((uint)((uint)uVar1 < local_28) <= (uint)(uVar1 >> 0x20)) goto LAB_0003340b;
LAB_00033961:
      uVar4 = FUN_0001aec0(0);
      uVar9 = *(undefined4 *)(param_1 + 8);
      uVar7 = dcgettext(0,"Debug info is corrupted, %s header at %#lx has length %s\n",5);
      warn(uVar7,uVar9,local_28 - local_38,uVar4);
      goto LAB_000339a9;
    }
    iVar3 = (int)pcVar11 - (int)pcVar10;
    if (iVar3 - 1U < 8) goto LAB_0003357a;
    local_38 = 4;
    local_48 = 4;
LAB_000333e8:
    local_44 = 0;
    local_28 = (int)local_3c - *(int *)(param_1 + 0x10);
    uVar1 = (ulonglong)local_28;
LAB_0003340b:
    uVar12 = (uint)(uVar1 >> 0x20);
    if (*(uint *)(param_1 + 0x20) < uVar12 ||
        *(uint *)(param_1 + 0x20) - uVar12 < (uint)(*(uint *)(param_1 + 0x1c) < (uint)uVar1))
    goto LAB_00033961;
    pcVar13 = local_3c + 2;
    pcVar10 = local_3c + local_44;
    iVar3 = local_48;
    if (pcVar13 < pcVar11) {
      local_1e = (*DAT_00073aec)(local_3c,2);
      if (pcVar13 + local_48 < pcVar11) {
LAB_000338c0:
        local_24 = (uint)local_1e;
        local_1e = local_1e - 2;
      }
      else {
        local_24 = (uint)local_1e;
        local_1e = local_1e - 2;
        iVar3 = (int)pcVar11 - (int)pcVar13;
        if (7 < ((int)pcVar11 - (int)pcVar13) - 1U) goto LAB_00033660;
      }
LAB_00033478:
      local_28 = (*DAT_00073aec)(pcVar13,iVar3);
    }
    else if (local_3c < pcVar11) {
      uVar12 = ((int)pcVar11 - (int)local_3c) - 1;
      if (7 < uVar12) goto LAB_0003344a;
      local_1e = (*DAT_00073aec)(local_3c,(int)pcVar11 - (int)local_3c,uVar12,uVar12);
      if (pcVar13 + local_48 < pcVar11) goto LAB_000338c0;
      local_24 = (uint)local_1e;
      local_1e = local_1e - 2;
      local_28 = 0;
    }
    else {
LAB_0003344a:
      local_24 = 0;
      local_1e = 0xfffe;
      if (pcVar13 + local_48 < pcVar11) goto LAB_00033478;
LAB_00033660:
      local_28 = 0;
    }
    if (DAT_00073928 - 1U < 0xfffffffe) {
      iVar3 = 0;
      piVar8 = (int *)(DAT_00073920 + 0xc);
      do {
        if (*piVar8 == local_28 && piVar8[1] == 0) goto LAB_00033498;
        iVar3 = iVar3 + 1;
        piVar8 = piVar8 + 0x14;
      } while (DAT_00073928 != iVar3);
      uVar9 = *(undefined4 *)(param_1 + 8);
      uVar4 = dcgettext(0,
                        ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
                        ,5);
      warn(uVar4,local_28,uVar9);
    }
LAB_00033498:
    local_3c = pcVar13 + local_48;
    pcVar13 = local_3c + local_48;
    iVar3 = local_48;
    if ((pcVar13 < pcVar11) ||
       ((uVar9 = 0, local_3c < pcVar11 &&
        (iVar3 = (int)pcVar11 - (int)local_3c, ((int)pcVar11 - (int)local_3c) - 1U < 8)))) {
      uVar9 = (*DAT_00073aec)(local_3c,iVar3);
    }
    pcVar2 = (char *)dcgettext(0,"  Length:                              %ld\n",5);
    printf(pcVar2,local_44);
    pcVar2 = (char *)dcgettext(0,"  Version:                             %d\n",5);
    printf(pcVar2,local_24);
    pcVar2 = (char *)dcgettext(0,"  Offset into .debug_info section:     0x%lx\n",5);
    printf(pcVar2,local_28);
    pcVar2 = (char *)dcgettext(0,"  Size of area in .debug_info section: %ld\n",5);
    printf(pcVar2,uVar9);
    if (local_1e < 2) {
      if (param_3 == 0) {
        pcVar2 = "\n    Offset\tName\n";
      }
      else {
        pcVar2 = "\n    Offset  Kind          Name\n";
      }
      pcVar2 = (char *)dcgettext(0,pcVar2,5);
      printf(pcVar2);
      do {
        pcVar2 = pcVar13 + local_48;
        if (pcVar11 <= pcVar2) {
          if ((pcVar13 < pcVar11) && (((int)pcVar11 - (int)pcVar13) - 1U < 8)) {
            (*DAT_00073aec)(pcVar13,(int)pcVar11 - (int)pcVar13);
          }
          break;
        }
        lVar14 = (*DAT_00073aec)(pcVar13,local_48);
        if (lVar14 == 0) break;
        iVar3 = (int)pcVar11 - (int)pcVar2;
        if (param_3 == 0) {
          sVar5 = iVar3 - 1;
          printf("    %-6lx\t%.*s\n",(int)lVar14,sVar5,pcVar2);
        }
        else {
          pcVar13 = pcVar2 + 1;
          sVar5 = iVar3 - 2;
          iVar6 = param_3;
          if ((pcVar13 < pcVar11) || (iVar6 = iVar3, iVar3 - 1U < 8)) {
            iVar3 = (*DAT_00073aec)(pcVar2,iVar6);
            local_3c = (char *)dcgettext(0,*(undefined4 *)
                                            (&DAT_0006f2c0 + ((uint)(iVar3 << 0x18) >> 0x1c & 7) * 4
                                            ),5);
            if (-1 < iVar3 << 0x18) goto LAB_000337b4;
            pcVar2 = "s";
          }
          else {
            local_3c = (char *)dcgettext(0,"no info",5);
LAB_000337b4:
            pcVar2 = "g";
          }
          uVar9 = dcgettext(0,pcVar2,5);
          printf("    %-6lx  %s,%-10s  %.*s\n",(int)lVar14,uVar9,local_3c,sVar5,pcVar13);
          pcVar2 = pcVar13;
        }
        sVar5 = strnlen(pcVar2,sVar5);
        pcVar13 = pcVar2 + sVar5 + 1;
      } while (pcVar13 < pcVar11);
    }
    else if (DAT_00071204 == 0) {
      uVar9 = dcgettext(0,"Only DWARF 2 and 3 pubnames are currently supported\n",5);
      warn(uVar9);
      DAT_00071204 = 1;
    }
  } while( true );
}

