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

int display_gdb_index(dwarf_section *section,void *file)

{
  int *piVar1;
  char *pcVar2;
  char *pcVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  dwarf_section *in_ECX;
  uchar *puVar10;
  uint uVar11;
  uchar *puVar12;
  uint uVar13;
  uint uVar14;
  uchar *puVar15;
  uint uVar16;
  elf_vma eVar17;
  elf_vma eVar18;
  elf_vma value;
  uchar *puVar19;
  undefined4 uVar20;
  int iVar21;
  ulonglong uVar22;
  uint local_54;
  
  puVar12 = section->start;
  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);
  piVar1 = (int *)((int)&section->size + 4);
  if (*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1) {
    pcVar2 = section->name;
    pcVar3 = "Truncated header in the %s section.\n";
    goto LAB_0004f46e;
  }
  eVar17 = byte_get_little_endian(puVar12,4);
  pcVar2 = (char *)eVar17;
  pcVar3 = (char *)dcgettext(0,"Version %ld\n",5);
  printf(pcVar3,pcVar2);
  if ((char *)0x5 < pcVar2 + -3) {
    pcVar3 = "Unsupported version %lu.\n";
    goto LAB_0004f46e;
  }
  if (pcVar2 == (char *)0x3) {
    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);
    warn(pcVar3);
LAB_0004f4be:
    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);
    warn(pcVar3);
LAB_0004f4dc:
    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);
    warn(pcVar3);
LAB_0004f4fa:
    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);
    warn(pcVar3);
  }
  else {
    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;
    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;
    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;
  }
  eVar17 = byte_get_little_endian(puVar12 + 4,4);
  uVar4 = (uint)eVar17;
  eVar17 = byte_get_little_endian(puVar12 + 8,4);
  uVar22 = eVar17 & 0xffffffff;
  eVar17 = byte_get_little_endian(puVar12 + 0xc,4);
  uVar13 = (uint)eVar17;
  eVar17 = byte_get_little_endian(puVar12 + 0x10,4);
  uVar14 = (uint)eVar17;
  eVar17 = byte_get_little_endian(puVar12 + 0x14,4);
  uVar7 = (uint)uVar22;
  uVar5 = (uint)eVar17;
  uVar6 = *(uint *)((int)&section->size + 4);
  uVar11 = (uint)section->size;
  if (((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))
     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))) {
    if (uVar7 < uVar4) {
      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);
      warn(pcVar3,uVar7,uVar4);
      return 0;
    }
    if (uVar13 < uVar7) {
      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);
      warn(pcVar3,uVar13,uVar7);
      return 0;
    }
    if (uVar14 < uVar13) {
      pcVar3 = (char *)dcgettext(0,
                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"
                                 ,5);
      warn(pcVar3,uVar14,uVar13);
      return 0;
    }
    if (uVar5 < uVar14) {
      pcVar3 = (char *)dcgettext(0,
                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"
                                 ,5);
      warn(pcVar3,uVar5,uVar14);
      return 0;
    }
    puVar10 = puVar12 + uVar14;
    if (section->start + uVar11 < puVar10) {
      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);
      warn(pcVar3);
      return 0;
    }
    puVar15 = puVar12 + uVar4;
    uVar6 = uVar7 - uVar4 >> 3;
    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);
    printf(pcVar3);
    iVar21 = (int)uVar22;
    if (uVar6 != 0) {
      uVar11 = 0;
      do {
        eVar17 = byte_get_little_endian(puVar15,8);
        puVar19 = puVar15 + 8;
        puVar15 = puVar15 + 0x10;
        eVar18 = byte_get_little_endian(puVar19,8);
        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);
        uVar16 = uVar11 + 2;
        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);
        iVar21 = (int)uVar22;
        uVar11 = uVar16;
      } while (uVar16 < uVar6);
    }
    puVar15 = puVar12 + iVar21;
    uVar6 = uVar13 - iVar21 >> 3;
    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);
    printf(pcVar3);
    if (uVar6 != 0) {
      uVar11 = 0;
      do {
        eVar17 = byte_get_little_endian(puVar15,8);
        eVar18 = byte_get_little_endian(puVar15 + 8,8);
        puVar19 = puVar15 + 0x10;
        puVar15 = puVar15 + 0x18;
        value = byte_get_little_endian(puVar19,8);
        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);
        uVar16 = uVar11 + 3;
        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);
        print_dwarf_vma(value,(uint)value);
        putchar(10);
        uVar11 = uVar16;
      } while (uVar16 < uVar6);
    }
    uVar6 = uVar14 - uVar13;
    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);
    printf(pcVar3);
    if (uVar6 != 0) {
      puVar15 = puVar12 + uVar13 + 8;
      uVar11 = 0;
      do {
        uVar11 = uVar11 + 0x14;
        eVar17 = byte_get_little_endian(puVar15 + -8,8);
        uVar13 = (uint)eVar17;
        eVar17 = byte_get_little_endian(puVar15,8);
        puVar19 = puVar15 + 8;
        uVar20 = 4;
        eVar18 = byte_get_little_endian(puVar19,4);
        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);
        local_54 = (uint)eVar17;
        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);
        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);
        printf(pcVar3,(int)eVar18);
        if (uVar6 <= uVar11) break;
        puVar15 = puVar15 + 0x14;
      } while (uVar11 <= uVar6 - 0x14);
    }
    uVar6 = uVar5 - uVar14 >> 3;
    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);
    printf(pcVar3);
    if (uVar6 != 0) {
      puVar12 = puVar12 + uVar5;
      uVar13 = 0;
      uVar11 = uVar7 - uVar4 >> 4;
      do {
        uVar22 = ZEXT48(puVar10);
        eVar17 = byte_get_little_endian(puVar10,4);
        uVar4 = (uint)eVar17;
        eVar17 = byte_get_little_endian(puVar10 + 4,4);
        iVar21 = (int)uVar22;
        uVar14 = (uint)eVar17;
        if (uVar4 != 0 || uVar14 != 0) {
          if ((CARRY4((uint)puVar12,uVar4)) ||
             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {
            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);
            printf(pcVar3,uVar13,uVar4);
            pcVar3 = (char *)dcgettext(0,
                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"
                                       ,5);
            uVar7 = uVar13;
            warn(pcVar3,uVar4,uVar13);
          }
          else {
            uVar7 = (iVar21 - uVar5) - uVar4;
            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);
          }
          iVar21 = (int)uVar22;
          if ((CARRY4((uint)puVar12,uVar14)) ||
             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {
            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);
            printf(pcVar3,uVar14);
            pcVar3 = (char *)dcgettext(0,
                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
                                       ,5);
            warn(pcVar3,uVar14,uVar13);
          }
          else {
            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);
            iVar21 = (int)uVar22;
            uVar4 = (uint)eVar17;
            if (((uVar4 * 4 < uVar4) ||
                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||
               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {
              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);
              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"
                                         ,5);
              warn(pcVar3,uVar4,uVar13);
            }
            else {
              if (uVar4 < 2) {
                if (uVar4 != 0) goto LAB_0004f664;
              }
              else {
                putchar(10);
LAB_0004f664:
                uVar20 = 0x20;
                if (uVar4 != 1) {
                  uVar20 = 9;
                }
                puVar10 = puVar12 + uVar14 + 4;
                uVar14 = 0;
                do {
                  eVar17 = byte_get_little_endian(puVar10,4);
                  uVar7 = (uint)eVar17;
                  uVar16 = uVar7 & 0xffffff;
                  if (uVar16 < uVar11) {
                    printf("%c%lu",uVar20,uVar16);
                  }
                  else {
                    printf("%cT%lu",uVar20,uVar16 - uVar11);
                  }
                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);
                  if ((int)uVar7 < 0) {
                    uVar9 = dcgettext(0,"static",5);
                  }
                  else {
                    uVar9 = dcgettext(0,"global",5);
                  }
                  printf(" [%s, %s]",uVar9,uVar8);
                  iVar21 = (int)uVar22;
                  if (uVar4 == 1) goto LAB_0004f748;
                  uVar14 = uVar14 + 1;
                  puVar10 = puVar10 + 4;
                  putchar(10);
                  iVar21 = (int)uVar22;
                } while (uVar14 < uVar4);
                if (1 < uVar4) goto LAB_0004f360;
              }
LAB_0004f748:
              putchar(10);
            }
          }
        }
LAB_0004f360:
        uVar13 = uVar13 + 1;
        puVar10 = (uchar *)(iVar21 + 8);
      } while (uVar6 != uVar13);
    }
    return 1;
  }
  pcVar2 = section->name;
  pcVar3 = "Corrupt header in the %s section.\n";
LAB_0004f46e:
  pcVar3 = (char *)dcgettext(0,pcVar3,5);
  warn(pcVar3,pcVar2);
  return 0;
}



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

undefined4 FUN_0004ee60(int param_1)

{
  int iVar1;
  char *pcVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined8 uVar19;
  
  iVar14 = *(int *)(param_1 + 0x10);
  FUN_0004eb80();
  if (*(int *)(param_1 + 0x20) == 0 &&
      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {
    iVar1 = *(int *)(param_1 + 8);
    pcVar2 = "Truncated header in the %s section.\n";
    goto LAB_0004f46e;
  }
  iVar1 = FUN_00066f30(iVar14,4);
  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);
  printf(pcVar2,iVar1);
  if (5 < iVar1 - 3U) {
    pcVar2 = "Unsupported version %lu.\n";
    goto LAB_0004f46e;
  }
  if (iVar1 == 3) {
    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);
    warn(uVar12);
LAB_0004f4be:
    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);
    warn(uVar12);
LAB_0004f4dc:
    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);
    warn(uVar12);
LAB_0004f4fa:
    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);
    warn(uVar12);
  }
  else {
    if (iVar1 == 4) goto LAB_0004f4be;
    if (iVar1 == 5) goto LAB_0004f4dc;
    if (iVar1 == 6) goto LAB_0004f4fa;
  }
  uVar3 = FUN_00066f30(iVar14 + 4,4);
  uVar4 = FUN_00066f30(iVar14 + 8,4);
  uVar5 = FUN_00066f30(iVar14 + 0xc,4);
  uVar6 = FUN_00066f30(iVar14 + 0x10,4);
  uVar7 = FUN_00066f30(iVar14 + 0x14,4);
  uVar16 = *(uint *)(param_1 + 0x20);
  uVar9 = *(uint *)(param_1 + 0x1c);
  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))
     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {
    if (uVar4 < uVar3) {
      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);
      warn(uVar12,uVar4,uVar3);
      return 0;
    }
    if (uVar5 < uVar4) {
      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);
      warn(uVar12,uVar5,uVar4);
      return 0;
    }
    if (uVar6 < uVar5) {
      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);
      warn(uVar12,uVar6,uVar5);
      return 0;
    }
    if (uVar7 < uVar6) {
      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);
      warn(uVar12,uVar7,uVar6);
      return 0;
    }
    uVar16 = uVar6 + iVar14;
    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {
      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);
      warn(uVar12);
      return 0;
    }
    uVar8 = uVar4 - uVar3;
    iVar1 = uVar3 + iVar14;
    uVar9 = uVar8 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = 0;
      do {
        iVar10 = FUN_00066f30(iVar1,8);
        iVar11 = iVar1 + 8;
        iVar1 = iVar1 + 0x10;
        iVar11 = FUN_00066f30(iVar11,8);
        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);
        uVar18 = uVar3 + 2;
        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);
        uVar3 = uVar18;
      } while (uVar18 < uVar9);
    }
    iVar1 = uVar4 + iVar14;
    uVar9 = uVar5 - uVar4 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = 0;
      do {
        uVar12 = FUN_00066f30(iVar1,8);
        uVar13 = FUN_00066f30(iVar1 + 8,8);
        iVar11 = iVar1 + 0x10;
        iVar1 = iVar1 + 0x18;
        uVar19 = FUN_00066f30(iVar11,8);
        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);
        uVar4 = uVar3 + 3;
        printf(pcVar2,uVar3 / 3,uVar12,uVar13);
        FUN_0004ce60(uVar19);
        putchar(10);
        uVar3 = uVar4;
      } while (uVar4 < uVar9);
    }
    uVar9 = uVar6 - uVar5;
    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      iVar1 = iVar14 + 8 + uVar5;
      uVar3 = 0;
      do {
        uVar3 = uVar3 + 0x14;
        FUN_00066f30(iVar1 + -8,8);
        FUN_00066f30(iVar1,8);
        uVar12 = FUN_00066f30(iVar1 + 8,4);
        FUN_0004ce60();
        FUN_0004ce60();
        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);
        printf(pcVar2,uVar12);
        if (uVar9 <= uVar3) break;
        iVar1 = iVar1 + 0x14;
      } while (uVar3 <= uVar9 - 0x14);
    }
    uVar9 = uVar7 - uVar6 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = iVar14 + uVar7;
      uVar4 = 0;
      uVar8 = uVar8 >> 4;
      do {
        uVar5 = uVar16;
        uVar6 = FUN_00066f30(uVar16,4);
        uVar16 = FUN_00066f30(uVar16 + 4,4);
        if (uVar6 != 0 || uVar16 != 0) {
          if ((CARRY4(uVar3,uVar6)) ||
             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {
            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);
            printf(pcVar2,uVar4,uVar6);
            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);
            uVar18 = uVar4;
            warn(uVar12,uVar6,uVar4);
          }
          else {
            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;
            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);
          }
          if ((CARRY4(uVar3,uVar16)) ||
             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {
            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);
            printf(pcVar2,uVar16);
            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
                               ,5);
            warn(uVar12,uVar16,uVar4);
          }
          else {
            uVar6 = FUN_00066f30(uVar3 + uVar16,4);
            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;
            if (((uVar6 * 4 < uVar6) ||
                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||
               (uVar17 < uVar3)) {
              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);
              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);
              warn(uVar12,uVar6,uVar4);
            }
            else {
              if (uVar6 < 2) {
                if (uVar6 != 0) goto LAB_0004f664;
              }
              else {
                putchar(10);
LAB_0004f664:
                uVar12 = 0x20;
                if (uVar6 != 1) {
                  uVar12 = 9;
                }
                iVar14 = uVar16 + 4 + uVar3;
                uVar16 = 0;
                do {
                  uVar18 = FUN_00066f30(iVar14,4);
                  uVar17 = uVar18 & 0xffffff;
                  if (uVar17 < uVar8) {
                    printf("%c%lu",uVar12,uVar17);
                  }
                  else {
                    printf("%cT%lu",uVar12,uVar17 - uVar8);
                  }
                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);
                  if ((int)uVar18 < 0) {
                    uVar15 = dcgettext(0,"static",5);
                  }
                  else {
                    uVar15 = dcgettext(0,"global",5);
                  }
                  printf(" [%s, %s]",uVar15,uVar13);
                  if (uVar6 == 1) goto LAB_0004f748;
                  uVar16 = uVar16 + 1;
                  iVar14 = iVar14 + 4;
                  putchar(10);
                } while (uVar16 < uVar6);
                if (1 < uVar6) goto LAB_0004f360;
              }
LAB_0004f748:
              putchar(10);
            }
          }
        }
LAB_0004f360:
        uVar4 = uVar4 + 1;
        uVar16 = uVar5 + 8;
      } while (uVar9 != uVar4);
    }
    return 1;
  }
  iVar1 = *(int *)(param_1 + 8);
  pcVar2 = "Corrupt header in the %s section.\n";
LAB_0004f46e:
  uVar12 = dcgettext(0,pcVar2,5);
  warn(uVar12,iVar1);
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x65197
SUB ESP,0x4c
MOV EDI,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EDI + 0x8]
LEA EDX,[EDI + 0xc]
MOV EBP,dword ptr [EDI + 0x10]
CALL 0x0004eb80
MOV EAX,0x17
CMP EAX,dword ptr [EDI + 0x1c]
MOV EAX,0x0
SBB EAX,dword ptr [EDI + 0x20]
JNC 0x0004f490
SUB ESP,0x8
PUSH 0x4
PUSH EBP
CALL 0x00066f30
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xfffde5a8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00013060
LEA EAX,[ESI + -0x3]
ADD ESP,0x10
CMP EAX,0x5
JA 0x0004f520
CMP ESI,0x3
JZ 0x0004f4a0
CMP ESI,0x4
JZ 0x0004f4be
CMP ESI,0x5
JZ 0x0004f4dc
CMP ESI,0x6
JZ 0x0004f4fa
SUB ESP,0x8
LEA EAX,[EBP + 0x4]
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x2c],EAX
MOV ESI,EAX
POP EAX
LEA EAX,[EBP + 0x8]
POP EDX
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x10],EAX
POP ECX
POP EAX
LEA EAX,[EBP + 0xc]
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x18],EAX
POP EAX
LEA EAX,[EBP + 0x10]
POP EDX
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x24],EAX
POP ECX
POP EAX
LEA EAX,[EBP + 0x14]
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV ECX,dword ptr [EDI + 0x20]
XOR EDX,EDX
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EDI + 0x1c]
ADD ESP,0x10
CMP EAX,ESI
MOV ESI,ECX
SBB ESI,EDX
JC 0x0004f460
CMP EAX,dword ptr [ESP]
MOV ESI,ECX
SBB ESI,EDX
JC 0x0004f460
CMP EAX,dword ptr [ESP + 0x8]
MOV ESI,ECX
SBB ESI,EDX
JC 0x0004f460
CMP EAX,dword ptr [ESP + 0x14]
MOV ESI,ECX
SBB ESI,EDX
JC 0x0004f460
CMP EAX,dword ptr [ESP + 0x18]
SBB ECX,EDX
JC 0x0004f460
MOV EDX,dword ptr [ESP]
CMP dword ptr [ESP + 0x1c],EDX
JA 0x0004f598
MOV EDX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP],EDX
JA 0x0004f5d0
MOV EDX,dword ptr [ESP + 0x14]
CMP dword ptr [ESP + 0x8],EDX
JA 0x0004f530
MOV EDX,dword ptr [ESP + 0x18]
CMP dword ptr [ESP + 0x14],EDX
JA 0x0004f625
MOV ECX,dword ptr [ESP + 0x14]
ADD EAX,dword ptr [EDI + 0x10]
ADD ECX,EBP
MOV dword ptr [ESP + 0x28],ECX
CMP ECX,EAX
JA 0x0004f600
MOV ESI,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP]
SUB ESP,0x4
SUB EAX,ESI
ADD ESI,EBP
MOV dword ptr [ESP + 0x30],EAX
SHR EAX,0x3
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xfffde5cf]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
XOR EDX,EDX
LEA ECX,[EBX + 0xfffde5e7]
MOV dword ptr [ESP + 0x24],ECX
TEST EAX,EAX
JZ 0x0004f09a
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x60],EDI
MOV EDI,EDX
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH 0x8
PUSH ESI
CALL 0x00066f30
POP ECX
MOV EBP,EAX
POP EAX
LEA EAX,[ESI + 0x8]
PUSH 0x8
PUSH EAX
ADD ESI,0x10
CALL 0x00066f30
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0xc
PUSH 0x5
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x2c]
LEA EDX,[EBP + EDX*0x1 + -0x1]
PUSH EDX
MOV EDX,EDI
ADD EDI,0x2
SHR EDX,0x1
PUSH EBP
PUSH EDX
PUSH EAX
CALL 0x00013060
ADD ESP,0x20
CMP dword ptr [ESP + 0x20],EDI
JA 0x0004f040
MOV EBP,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0x4
SUB EAX,ESI
ADD ESI,EBP
SHR EAX,0x3
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xfffde5db]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
XOR EDX,EDX
LEA ECX,[EBX + 0xfffde60d]
MOV dword ptr [ESP + 0x24],ECX
TEST EAX,EAX
JZ 0x0004f183
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x60],EDI
MOV EDI,EDX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH 0x8
PUSH ESI
CALL 0x00066f30
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[ESI + 0x8]
POP ECX
POP EBP
PUSH 0x8
PUSH EAX
CALL 0x00066f30
MOV EBP,EAX
POP EAX
LEA EAX,[ESI + 0x10]
POP EDX
PUSH 0x8
ADD ESI,0x18
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0xc
PUSH 0x5
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
CALL 0x000130f0
PUSH EBP
MOV ECX,EAX
MOV EAX,0xaaaaaaab
PUSH dword ptr [ESP + 0x30]
MUL EDI
ADD EDI,0x3
SHR EDX,0x1
PUSH EDX
PUSH ECX
CALL 0x00013060
ADD ESP,0x20
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
MOV ECX,0x8
CALL 0x0004ce60
SUB ESP,0xc
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x10
CMP dword ptr [ESP + 0x20],EDI
JA 0x0004f0f0
MOV EBP,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x14]
SUB ESI,dword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xfffde5fc]
SUB ESP,0x4
MOV dword ptr [ESP + 0x20],ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0004f279
MOV EAX,dword ptr [ESP + 0x1c]
XOR ECX,ECX
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x60],EDI
SUB EAX,0x14
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x8]
LEA ESI,[EBP + EAX*0x1 + 0x8]
LEA EAX,[EBX + 0xfffc8447]
MOV EBP,ECX
MOV dword ptr [ESP + 0x20],EAX
JMP 0x0004f1ed
ADD ESI,0x14
CMP EBP,dword ptr [ESP + 0x24]
JA 0x0004f271
SUB ESP,0x8
LEA EAX,[ESI + -0x8]
ADD EBP,0x14
PUSH 0x8
PUSH EAX
CALL 0x00066f30
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EDX
POP ECX
POP EDI
PUSH 0x8
PUSH ESI
CALL 0x00066f30
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
POP EAX
LEA EAX,[ESI + 0x8]
POP EDX
PUSH 0x4
PUSH EAX
CALL 0x00066f30
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,0x8
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x10]
CALL 0x0004ce60
MOV EDX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,0x8
CALL 0x0004ce60
ADD ESP,0xc
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDX
PUSH EDI
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
CMP dword ptr [ESP + 0x1c],EBP
JA 0x0004f1e0
MOV EBP,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [ESP + 0x18]
SUB EAX,dword ptr [ESP + 0x14]
SUB ESP,0x4
SHR EAX,0x3
MOV dword ptr [ESP + 0x18],EAX
MOV ESI,EAX
LEA EAX,[EBX + 0xfffde620]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0004f560
MOV EAX,dword ptr [ESP + 0x2c]
ADD EBP,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x60],EDI
MOV dword ptr [ESP + 0x8],EBP
XOR EBP,EBP
SHR EAX,0x4
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xfffde67b]
MOV dword ptr [ESP + 0x34],EAX
JMP 0x0004f371
SUB ESP,0x8
PUSH 0x4
PUSH EAX
CALL 0x00066f30
LEA ECX,[ESI + 0x4]
MOV EDI,EAX
LEA EAX,[EAX*0x4 + 0x0]
MOV dword ptr [ESP + 0x2c],ECX
LEA EDX,[EAX + ECX*0x1]
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
ADD EDX,ECX
CMP EAX,EDI
JC 0x0004f325
MOV EAX,dword ptr [ESP + 0x60]
MOV ESI,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x1c]
ADD EAX,dword ptr [ESI + 0x10]
CMP EDX,EAX
JNC 0x0004f325
CMP ECX,EDX
JBE 0x0004f653
SUB ESP,0x8
LEA EAX,[EBX + 0xfffde657]
PUSH EDI
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb614]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
LEA ESI,[ESI]
LEA ESI,[ESI]
ADD EBP,0x1
ADD dword ptr [ESP],0x8
CMP dword ptr [ESP + 0x14],EBP
JZ 0x0004f560
SUB ESP,0x8
PUSH 0x4
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
CALL 0x00066f30
MOV EDI,EAX
POP EAX
MOV EAX,ESI
POP EDX
ADD EAX,0x4
PUSH 0x4
PUSH EAX
CALL 0x00066f30
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,EDI
OR EAX,ESI
JZ 0x0004f360
MOV EDX,dword ptr [ESP + 0x8]
ADD EDX,EDI
JC 0x0004f3c0
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x1c]
MOV ECX,EAX
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x60]
ADD ECX,dword ptr [EAX + 0x10]
CMP EDX,ECX
JC 0x0004f570
SUB ESP,0x4
LEA EAX,[EBX + 0xfffde630]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EDI
PUSH EBP
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb574]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
ADD EAX,ESI
JC 0x0004f41d
MOV ECX,dword ptr [ESP + 0x60]
MOV EDX,dword ptr [ECX + 0x1c]
MOV ECX,dword ptr [ECX + 0x10]
LEA EDX,[ECX + EDX*0x1 + -0x3]
CMP EAX,EDX
JC 0x0004f2e0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb5b0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00013060
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdb5d0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EBP
PUSH ESI
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x0004f360
SUB ESP,0x4
MOV ESI,dword ptr [EDI + 0x8]
LEA EAX,[EBX + 0xfffdb434]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV ESI,dword ptr [EDI + 0x8]
LEA EAX,[EBX + 0xfffdb340]
PUSH 0x5
JMP 0x0004f46e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb368]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb39c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb3d4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb404]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
JMP 0x0004eef6
SUB ESP,0x4
LEA EAX,[EBX + 0xfffde5b5]
PUSH 0x5
JMP 0x0004f46e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb4bc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f484
MOV EAX,0x1
JMP 0x0004f484
PUSH EDX
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,dword ptr [ESP + 0x1c]
SUB EAX,EDI
PUSH EAX
LEA EAX,[EBX + 0xfffde64b]
PUSH EBP
PUSH EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x0004f3ff
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb458]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x8]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f484
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb484]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x4]
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f484
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb544]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f484
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdb500]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00066db0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x0004f484
CMP EDI,0x1
JA 0x0004f7c9
TEST EDI,EDI
JZ 0x0004f748
LEA ECX,[EBX + 0xfffff480]
CMP EDI,0x1
MOV EDX,0x9
MOV EAX,0x20
MOV dword ptr [ESP + 0x2c],ECX
LEA ECX,[EBX + 0xfffde688]
CMOVNZ EAX,EDX
XOR EDX,EDX
MOV dword ptr [ESP + 0x30],ECX
LEA ECX,[EBX + 0xfffde674]
MOV dword ptr [ESP + 0x3c],ECX
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0x1c]
ADD EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x1c],EDI
MOV dword ptr [ESP + 0x38],EBP
MOV EDI,EAX
MOV EBP,EDX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH 0x4
PUSH EDI
CALL 0x00066f30
MOV ECX,EAX
MOV ESI,EAX
AND EAX,0xffffff
SHR ECX,0x1f
SHR ESI,0x1c
MOV dword ptr [ESP + 0x30],ECX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x24]
AND ESI,0x7
CMP ECX,EAX
JA 0x0004f7b0
SUB ESP,0x4
SUB EAX,ECX
PUSH EAX
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x48]
CALL 0x00013060
ADD ESP,0x10
SUB ESP,0x4
PUSH 0x5
MOV EAX,dword ptr [ESP + 0x34]
PUSH dword ptr [EAX + ESI*0x4]
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x0004f790
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc90d5]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
SUB ESP,0x4
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
CALL 0x00013060
ADD ESP,0x10
CMP dword ptr [ESP + 0x1c],0x1
JNZ 0x0004f760
MOV EBP,dword ptr [ESP + 0x38]
SUB ESP,0xc
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x10
JMP 0x0004f360
SUB ESP,0xc
ADD EBP,0x1
ADD EDI,0x4
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x10
CMP dword ptr [ESP + 0x1c],EBP
JA 0x0004f6b0
MOV EDI,dword ptr [ESP + 0x1c]
MOV EBP,dword ptr [ESP + 0x38]
CMP EDI,0x1
JA 0x0004f360
JMP 0x0004f748
SUB ESP,0x4
LEA EAX,[EBX + 0xfffde681]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0x10
JMP 0x0004f72c
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x40]
CALL 0x00013060
ADD ESP,0x10
JMP 0x0004f6f6
SUB ESP,0xc
PUSH 0xa
CALL 0x000132d0
ADD ESP,0x10
JMP 0x0004f664
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_0004ee60(int param_1)\n\n{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}\n\n" comment (function_definition "undefined4 FUN_0004ee60(int param_1)\n\n{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_0004ee60(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "FUN_0004eb80();" (call_expression "FUN_0004eb80()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20))" ( (binary_expression "*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (call_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x17 < *(uint *)(param_1 + 0x1c))" ( (binary_expression "0x17 < *(uint *)(param_1 + 0x1c)" number_literal < (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) ))))) ))) <= (binary_expression "(uint)-*(int *)(param_1 + 0x20)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))))) )) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Truncated header in the %s section.\n";" (assignment_expression "pcVar2 = "Truncated header in the %s section.\n"" identifier = (string_literal ""Truncated header in the %s section.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_00066f30(iVar14,4);" (assignment_expression "iVar1 = FUN_00066f30(iVar14,4)" identifier = (call_expression "FUN_00066f30(iVar14,4)" identifier (argument_list "(iVar14,4)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version %ld\n",5)" identifier (argument_list "(0,"Version %ld\n",5)" ( number_literal , (string_literal ""Version %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,iVar1);" (call_expression "printf(pcVar2,iVar1)" identifier (argument_list "(pcVar2,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "(5 < iVar1 - 3U)" ( (binary_expression "5 < iVar1 - 3U" number_literal < (binary_expression "iVar1 - 3U" identifier - number_literal)) )) (compound_statement "{\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "pcVar2 = "Unsupported version %lu.\n";" (assignment_expression "pcVar2 = "Unsupported version %lu.\n"" identifier = (string_literal ""Unsupported version %lu.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }" { (expression_statement "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier = (call_expression "dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier (argument_list "(0,"The address table data in version 3 may be wrong.\n",5)" ( number_literal , (string_literal ""The address table data in version 3 may be wrong.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier = (call_expression "dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier (argument_list "(0,"Version 4 does not support case insensitive lookups.\n",5)" ( number_literal , (string_literal ""Version 4 does not support case insensitive lookups.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier = (call_expression "dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier (argument_list "(0,"Version 5 does not include inlined functions.\n",5)" ( number_literal , (string_literal ""Version 5 does not include inlined functions.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier = (call_expression "dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier (argument_list "(0,"Version 6 does not include symbol attributes.\n",5)" ( number_literal , (string_literal ""Version 6 does not include symbol attributes.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) }) (else_clause "else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" else (compound_statement "{\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" { (if_statement "if (iVar1 == 4) goto LAB_0004f4be;" if (parenthesized_expression "(iVar1 == 4)" ( (binary_expression "iVar1 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0004f4be;" goto statement_identifier ;)) (if_statement "if (iVar1 == 5) goto LAB_0004f4dc;" if (parenthesized_expression "(iVar1 == 5)" ( (binary_expression "iVar1 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0004f4dc;" goto statement_identifier ;)) (if_statement "if (iVar1 == 6) goto LAB_0004f4fa;" if (parenthesized_expression "(iVar1 == 6)" ( (binary_expression "iVar1 == 6" identifier == number_literal) )) (goto_statement "goto LAB_0004f4fa;" goto statement_identifier ;)) }))) (expression_statement "uVar3 = FUN_00066f30(iVar14 + 4,4);" (assignment_expression "uVar3 = FUN_00066f30(iVar14 + 4,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 4,4)" identifier (argument_list "(iVar14 + 4,4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar4 = FUN_00066f30(iVar14 + 8,4);" (assignment_expression "uVar4 = FUN_00066f30(iVar14 + 8,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 8,4)" identifier (argument_list "(iVar14 + 8,4)" ( (binary_expression "iVar14 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar5 = FUN_00066f30(iVar14 + 0xc,4);" (assignment_expression "uVar5 = FUN_00066f30(iVar14 + 0xc,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0xc,4)" identifier (argument_list "(iVar14 + 0xc,4)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar6 = FUN_00066f30(iVar14 + 0x10,4);" (assignment_expression "uVar6 = FUN_00066f30(iVar14 + 0x10,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0x10,4)" identifier (argument_list "(iVar14 + 0x10,4)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar7 = FUN_00066f30(iVar14 + 0x14,4);" (assignment_expression "uVar7 = FUN_00066f30(iVar14 + 0x14,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0x14,4)" identifier (argument_list "(iVar14 + 0x14,4)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" if (parenthesized_expression "(((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))))" ( (binary_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" (parenthesized_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))" ( (binary_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16)" (parenthesized_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16))" ( (binary_expression "((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)" (parenthesized_expression "((uVar9 < uVar3) <= uVar16)" ( (binary_expression "(uVar9 < uVar3) <= uVar16" (parenthesized_expression "(uVar9 < uVar3)" ( (binary_expression "uVar9 < uVar3" identifier < identifier) )) <= identifier) )) && (parenthesized_expression "((uVar9 < uVar4) <= uVar16)" ( (binary_expression "(uVar9 < uVar4) <= uVar16" (parenthesized_expression "(uVar9 < uVar4)" ( (binary_expression "uVar9 < uVar4" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "((uVar9 < uVar5) <= uVar16)" ( (binary_expression "(uVar9 < uVar5) <= uVar16" (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "(((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" ( (parenthesized_expression "((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))" ( (binary_expression "(uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)" (binary_expression "(uVar9 < uVar6) <= uVar16" (parenthesized_expression "(uVar9 < uVar6)" ( (binary_expression "uVar9 < uVar6" identifier < identifier) )) <= identifier) && (parenthesized_expression "((uVar9 < uVar7) <= uVar16)" ( (binary_expression "(uVar9 < uVar7) <= uVar16" (parenthesized_expression "(uVar9 < uVar7)" ( (binary_expression "uVar9 < uVar7" identifier < identifier) )) <= identifier) ))) )) ))) )) (compound_statement "{\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" { (if_statement "if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" if (parenthesized_expression "(uVar4 < uVar3)" ( (binary_expression "uVar4 < uVar3" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier (argument_list "(0,"TU offset (%x) is less than CU offset (%x)\n",5)" ( number_literal , (string_literal ""TU offset (%x) is less than CU offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar4,uVar3);" (call_expression "warn(uVar12,uVar4,uVar3)" identifier (argument_list "(uVar12,uVar4,uVar3)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier (argument_list "(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" ( number_literal , (string_literal ""Address table offset (%x) is less than TU offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar5,uVar4);" (call_expression "warn(uVar12,uVar5,uVar4)" identifier (argument_list "(uVar12,uVar5,uVar4)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" identifier (argument_list "(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" ( number_literal , (string_literal ""Symbol table offset (%x) is less then Address table offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar6,uVar5);" (call_expression "warn(uVar12,uVar6,uVar5)" identifier (argument_list "(uVar12,uVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" if (parenthesized_expression "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" identifier (argument_list "(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" ( number_literal , (string_literal ""Constant pool offset (%x) is less than symbol table offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar7,uVar6);" (call_expression "warn(uVar12,uVar7,uVar6)" identifier (argument_list "(uVar12,uVar7,uVar6)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar16 = uVar6 + iVar14;" (assignment_expression "uVar16 = uVar6 + iVar14" identifier = (binary_expression "uVar6 + iVar14" identifier + identifier)) ;) (if_statement "if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" if (parenthesized_expression "(uVar9 + *(int *)(param_1 + 0x10) < uVar16)" ( (binary_expression "uVar9 + *(int *)(param_1 + 0x10) < uVar16" (binary_expression "uVar9 + *(int *)(param_1 + 0x10)" identifier + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier = (call_expression "dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier (argument_list "(0,"Address table extends beyond end of section.\n",5)" ( number_literal , (string_literal ""Address table extends beyond end of section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar8 = uVar4 - uVar3;" (assignment_expression "uVar8 = uVar4 - uVar3" identifier = (binary_expression "uVar4 - uVar3" identifier - identifier)) ;) (expression_statement "iVar1 = uVar3 + iVar14;" (assignment_expression "iVar1 = uVar3 + iVar14" identifier = (binary_expression "uVar3 + iVar14" identifier + identifier)) ;) (expression_statement "uVar9 = uVar8 >> 3;" (assignment_expression "uVar9 = uVar8 >> 3" identifier = (binary_expression "uVar8 >> 3" identifier >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nCU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nCU table:\n",5)" identifier (argument_list "(0,"\nCU table:\n",5)" ( number_literal , (string_literal ""\nCU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);" do (compound_statement "{\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      }" { (expression_statement "iVar10 = FUN_00066f30(iVar1,8);" (assignment_expression "iVar10 = FUN_00066f30(iVar1,8)" identifier = (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal )))) ;) (expression_statement "iVar11 = iVar1 + 8;" (assignment_expression "iVar11 = iVar1 + 8" identifier = (binary_expression "iVar1 + 8" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0x10;" (assignment_expression "iVar1 = iVar1 + 0x10" identifier = (binary_expression "iVar1 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar11 = FUN_00066f30(iVar11,8);" (assignment_expression "iVar11 = FUN_00066f30(iVar11,8)" identifier = (call_expression "FUN_00066f30(iVar11,8)" identifier (argument_list "(iVar11,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier (argument_list "(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( number_literal , (string_literal ""[%3u] 0x%lx - 0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar18 = uVar3 + 2;" (assignment_expression "uVar18 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;) (expression_statement "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);" (call_expression "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" identifier (argument_list "(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" ( identifier , (binary_expression "uVar3 >> 1" identifier >> number_literal) , identifier , (binary_expression "iVar10 + -1 + iVar11" (binary_expression "iVar10 + -1" identifier + number_literal) + identifier) ))) ;) (expression_statement "uVar3 = uVar18;" (assignment_expression "uVar3 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar18 < uVar9)" ( (binary_expression "uVar18 < uVar9" identifier < identifier) )) ;) })) (expression_statement "iVar1 = uVar4 + iVar14;" (assignment_expression "iVar1 = uVar4 + iVar14" identifier = (binary_expression "uVar4 + iVar14" identifier + identifier)) ;) (expression_statement "uVar9 = uVar5 - uVar4 >> 3;" (assignment_expression "uVar9 = uVar5 - uVar4 >> 3" identifier = (binary_expression "uVar5 - uVar4 >> 3" (binary_expression "uVar5 - uVar4" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nTU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nTU table:\n",5)" identifier (argument_list "(0,"\nTU table:\n",5)" ( number_literal , (string_literal ""\nTU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);" do (compound_statement "{\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      }" { (expression_statement "uVar12 = FUN_00066f30(iVar1,8);" (assignment_expression "uVar12 = FUN_00066f30(iVar1,8)" identifier = (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = FUN_00066f30(iVar1 + 8,8);" (assignment_expression "uVar13 = FUN_00066f30(iVar1 + 8,8)" identifier = (call_expression "FUN_00066f30(iVar1 + 8,8)" identifier (argument_list "(iVar1 + 8,8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = iVar1 + 0x10;" (assignment_expression "iVar11 = iVar1 + 0x10" identifier = (binary_expression "iVar1 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0x18;" (assignment_expression "iVar1 = iVar1 + 0x18" identifier = (binary_expression "iVar1 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar19 = FUN_00066f30(iVar11,8);" (assignment_expression "uVar19 = FUN_00066f30(iVar11,8)" identifier = (call_expression "FUN_00066f30(iVar11,8)" identifier (argument_list "(iVar11,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier (argument_list "(0,"[%3u] 0x%lx 0x%lx ",5)" ( number_literal , (string_literal ""[%3u] 0x%lx 0x%lx "" " string_content ") , number_literal ))))) ;) (expression_statement "uVar4 = uVar3 + 3;" (assignment_expression "uVar4 = uVar3 + 3" identifier = (binary_expression "uVar3 + 3" identifier + number_literal)) ;) (expression_statement "printf(pcVar2,uVar3 / 3,uVar12,uVar13);" (call_expression "printf(pcVar2,uVar3 / 3,uVar12,uVar13)" identifier (argument_list "(pcVar2,uVar3 / 3,uVar12,uVar13)" ( identifier , (binary_expression "uVar3 / 3" identifier / number_literal) , identifier , identifier ))) ;) (expression_statement "FUN_0004ce60(uVar19);" (call_expression "FUN_0004ce60(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar3 = uVar4;" (assignment_expression "uVar3 = uVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 < uVar9)" ( (binary_expression "uVar4 < uVar9" identifier < identifier) )) ;) })) (expression_statement "uVar9 = uVar6 - uVar5;" (assignment_expression "uVar9 = uVar6 - uVar5" identifier = (binary_expression "uVar6 - uVar5" identifier - identifier)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nAddress table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nAddress table:\n",5)" identifier (argument_list "(0,"\nAddress table:\n",5)" ( number_literal , (string_literal ""\nAddress table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" { (expression_statement "iVar1 = iVar14 + 8 + uVar5;" (assignment_expression "iVar1 = iVar14 + 8 + uVar5" identifier = (binary_expression "iVar14 + 8 + uVar5" (binary_expression "iVar14 + 8" identifier + number_literal) + identifier)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);" do (compound_statement "{\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      }" { (expression_statement "uVar3 = uVar3 + 0x14;" (assignment_expression "uVar3 = uVar3 + 0x14" identifier = (binary_expression "uVar3 + 0x14" identifier + number_literal)) ;) (expression_statement "FUN_00066f30(iVar1 + -8,8);" (call_expression "FUN_00066f30(iVar1 + -8,8)" identifier (argument_list "(iVar1 + -8,8)" ( (binary_expression "iVar1 + -8" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00066f30(iVar1,8);" (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal ))) ;) (expression_statement "uVar12 = FUN_00066f30(iVar1 + 8,4);" (assignment_expression "uVar12 = FUN_00066f30(iVar1 + 8,4)" identifier = (call_expression "FUN_00066f30(iVar1 + 8,4)" identifier (argument_list "(iVar1 + 8,4)" ( (binary_expression "iVar1 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5)" identifier = (cast_expression "(char *)dcgettext(0,&DAT_0007c447,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,&DAT_0007c447,5)" identifier (argument_list "(0,&DAT_0007c447,5)" ( number_literal , (pointer_expression "&DAT_0007c447" & identifier) , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar12);" (call_expression "printf(pcVar2,uVar12)" identifier (argument_list "(pcVar2,uVar12)" ( identifier , identifier ))) ;) (if_statement "if (uVar9 <= uVar3) break;" if (parenthesized_expression "(uVar9 <= uVar3)" ( (binary_expression "uVar9 <= uVar3" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + 0x14;" (assignment_expression "iVar1 = iVar1 + 0x14" identifier = (binary_expression "iVar1 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 <= uVar9 - 0x14)" ( (binary_expression "uVar3 <= uVar9 - 0x14" identifier <= (binary_expression "uVar9 - 0x14" identifier - number_literal)) )) ;) })) (expression_statement "uVar9 = uVar7 - uVar6 >> 3;" (assignment_expression "uVar9 = uVar7 - uVar6 >> 3" identifier = (binary_expression "uVar7 - uVar6 >> 3" (binary_expression "uVar7 - uVar6" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nSymbol table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nSymbol table:\n",5)" identifier (argument_list "(0,"\nSymbol table:\n",5)" ( number_literal , (string_literal ""\nSymbol table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" { (expression_statement "uVar3 = iVar14 + uVar7;" (assignment_expression "uVar3 = iVar14 + uVar7" identifier = (binary_expression "iVar14 + uVar7" identifier + identifier)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar8 >> 4;" (assignment_expression "uVar8 = uVar8 >> 4" identifier = (binary_expression "uVar8 >> 4" identifier >> number_literal)) ;) (do_statement "do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);" do (compound_statement "{\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      }" { (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" identifier = identifier) ;) (expression_statement "uVar6 = FUN_00066f30(uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar16,4)" identifier = (call_expression "FUN_00066f30(uVar16,4)" identifier (argument_list "(uVar16,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar16 = FUN_00066f30(uVar16 + 4,4);" (assignment_expression "uVar16 = FUN_00066f30(uVar16 + 4,4)" identifier = (call_expression "FUN_00066f30(uVar16 + 4,4)" identifier (argument_list "(uVar16 + 4,4)" ( (binary_expression "uVar16 + 4" identifier + number_literal) , number_literal )))) ;) (if_statement "if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" if (parenthesized_expression "(uVar6 != 0 || uVar16 != 0)" ( (binary_expression "uVar6 != 0 || uVar16 != 0" (binary_expression "uVar6 != 0" identifier != number_literal) || (binary_expression "uVar16 != 0" identifier != number_literal)) )) (compound_statement "{\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" { (if_statement "if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" if (parenthesized_expression "((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6))" ( (binary_expression "(CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" (parenthesized_expression "(CARRY4(uVar3,uVar6))" ( (call_expression "CARRY4(uVar3,uVar6)" identifier (argument_list "(uVar3,uVar6)" ( identifier , identifier ))) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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) )))) + (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) ))))) ))) <= (binary_expression "uVar3 + uVar6" identifier + identifier)) ))) )) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier (argument_list "(0,"[%3u] <corrupt offset: %x>",5)" ( number_literal , (string_literal ""[%3u] <corrupt offset: %x>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar4,uVar6);" (call_expression "printf(pcVar2,uVar4,uVar6)" identifier (argument_list "(pcVar2,uVar4,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" identifier (argument_list "(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" ( number_literal , (string_literal ""Corrupt name offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar18 = uVar4;" (assignment_expression "uVar18 = uVar4" identifier = identifier) ;) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" identifier (argument_list "(uVar12,uVar6,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" else (compound_statement "{\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" { (expression_statement "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6" identifier = (binary_expression "(*(int *)(param_1 + 0x1c) - uVar7) - uVar6" (parenthesized_expression "(*(int *)(param_1 + 0x1c) - uVar7)" ( (binary_expression "*(int *)(param_1 + 0x1c) - uVar7" (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) )))) - identifier) )) - identifier)) ;) (expression_statement "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);" (call_expression "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" identifier (argument_list "("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" ( (string_literal ""[%3u] %.*s:"" " string_content ") , identifier , identifier , (binary_expression "uVar3 + uVar6" identifier + identifier) ))) ;) }))) (if_statement "if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" if (parenthesized_expression "((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16))" ( (binary_expression "(CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" (parenthesized_expression "(CARRY4(uVar3,uVar16))" ( (call_expression "CARRY4(uVar3,uVar16)" identifier (argument_list "(uVar3,uVar16)" ( identifier , identifier ))) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16" (call_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)" (binary_expression "*(int *)(param_1 + 0x10) + -3" (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) )))) + number_literal) + (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) ))))) ))) <= (binary_expression "uVar3 + uVar16" identifier + identifier)) ))) )) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier (argument_list "(0,"<invalid CU vector offset: %x>\n",5)" ( number_literal , (string_literal ""<invalid CU vector offset: %x>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar16);" (call_expression "printf(pcVar2,uVar16)" identifier (argument_list "(pcVar2,uVar16)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" identifier = (call_expression "dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" identifier (argument_list "(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" ( number_literal , (string_literal ""Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar16,uVar4);" (call_expression "warn(uVar12,uVar16,uVar4)" identifier (argument_list "(uVar12,uVar16,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" else (compound_statement "{\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" { (expression_statement "uVar6 = FUN_00066f30(uVar3 + uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar3 + uVar16,4)" identifier = (call_expression "FUN_00066f30(uVar3 + uVar16,4)" identifier (argument_list "(uVar3 + uVar16,4)" ( (binary_expression "uVar3 + uVar16" identifier + identifier) , number_literal )))) ;) (expression_statement "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;" (assignment_expression "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3" identifier = (binary_expression "uVar6 * 4 + uVar16 + 4 + uVar3" (binary_expression "uVar6 * 4 + uVar16 + 4" (binary_expression "uVar6 * 4 + uVar16" (binary_expression "uVar6 * 4" identifier * number_literal) + identifier) + number_literal) + identifier)) ;) (if_statement "if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" if (parenthesized_expression "(((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3))" ( (binary_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)" (parenthesized_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17))" ( (binary_expression "(uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" (parenthesized_expression "(uVar6 * 4 < uVar6)" ( (binary_expression "uVar6 * 4 < uVar6" (binary_expression "uVar6 * 4" identifier * number_literal) < identifier) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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) )))) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) <= identifier) ))) )) || (parenthesized_expression "(uVar17 < uVar3)" ( (binary_expression "uVar17 < uVar3" identifier < identifier) ))) )) (compound_statement "{\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }" { (expression_statement "printf("<invalid number of CUs: %d>\n",uVar6,uVar18);" (call_expression "printf("<invalid number of CUs: %d>\n",uVar6,uVar18)" identifier (argument_list "("<invalid number of CUs: %d>\n",uVar6,uVar18)" ( (string_literal ""<invalid number of CUs: %d>\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" identifier = (call_expression "dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" identifier (argument_list "(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" ( number_literal , (string_literal ""Invalid number of CUs (0x%x) for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" identifier (argument_list "(uVar12,uVar6,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" else (compound_statement "{\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" { (if_statement "if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n                if (uVar6 != 0) goto LAB_0004f664;\n              }" { (if_statement "if (uVar6 != 0) goto LAB_0004f664;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004f664;" goto statement_identifier ;)) }) (else_clause "else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" else (compound_statement "{\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_0004f664:\n                uVar12 = 0x20;" statement_identifier : (expression_statement "uVar12 = 0x20;" (assignment_expression "uVar12 = 0x20" identifier = number_literal) ;)) (if_statement "if (uVar6 != 1) {\n                  uVar12 = 9;\n                }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n                  uVar12 = 9;\n                }" { (expression_statement "uVar12 = 9;" (assignment_expression "uVar12 = 9" identifier = number_literal) ;) })) (expression_statement "iVar14 = uVar16 + 4 + uVar3;" (assignment_expression "iVar14 = uVar16 + 4 + uVar3" identifier = (binary_expression "uVar16 + 4 + uVar3" (binary_expression "uVar16 + 4" identifier + number_literal) + identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);" do (compound_statement "{\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                }" { (expression_statement "uVar18 = FUN_00066f30(iVar14,4);" (assignment_expression "uVar18 = FUN_00066f30(iVar14,4)" identifier = (call_expression "FUN_00066f30(iVar14,4)" identifier (argument_list "(iVar14,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar17 = uVar18 & 0xffffff;" (assignment_expression "uVar17 = uVar18 & 0xffffff" identifier = (binary_expression "uVar18 & 0xffffff" identifier & number_literal)) ;) (if_statement "if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" if (parenthesized_expression "(uVar17 < uVar8)" ( (binary_expression "uVar17 < uVar8" identifier < identifier) )) (compound_statement "{\n                    printf("%c%lu",uVar12,uVar17);\n                  }" { (expression_statement "printf("%c%lu",uVar12,uVar17);" (call_expression "printf("%c%lu",uVar12,uVar17)" identifier (argument_list "("%c%lu",uVar12,uVar17)" ( (string_literal ""%c%lu"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" else (compound_statement "{\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" { (expression_statement "printf("%cT%lu",uVar12,uVar17 - uVar8);" (call_expression "printf("%cT%lu",uVar12,uVar17 - uVar8)" identifier (argument_list "("%cT%lu",uVar12,uVar17 - uVar8)" ( (string_literal ""%cT%lu"" " string_content ") , identifier , (binary_expression "uVar17 - uVar8" identifier - identifier) ))) ;) }))) (expression_statement "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);" (assignment_expression "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" identifier = (call_expression "dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" identifier (argument_list "(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" ( number_literal , (pointer_expression "*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" * (cast_expression "(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" ( (binary_expression "&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4" (pointer_expression "&DAT_000b3480" & identifier) + (binary_expression "(uVar18 >> 0x1c & 7) * 4" (parenthesized_expression "(uVar18 >> 0x1c & 7)" ( (binary_expression "uVar18 >> 0x1c & 7" (binary_expression "uVar18 >> 0x1c" identifier >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal )))) ;) (if_statement "if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    uVar15 = dcgettext(0,"static",5);\n                  }" { (expression_statement "uVar15 = dcgettext(0,"static",5);" (assignment_expression "uVar15 = dcgettext(0,"static",5)" identifier = (call_expression "dcgettext(0,"static",5)" identifier (argument_list "(0,"static",5)" ( number_literal , (string_literal ""static"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" else (compound_statement "{\n                    uVar15 = dcgettext(0,"global",5);\n                  }" { (expression_statement "uVar15 = dcgettext(0,"global",5);" (assignment_expression "uVar15 = dcgettext(0,"global",5)" identifier = (call_expression "dcgettext(0,"global",5)" identifier (argument_list "(0,"global",5)" ( number_literal , (string_literal ""global"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf(" [%s, %s]",uVar15,uVar13);" (call_expression "printf(" [%s, %s]",uVar15,uVar13)" identifier (argument_list "(" [%s, %s]",uVar15,uVar13)" ( (string_literal "" [%s, %s]"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (uVar6 == 1) goto LAB_0004f748;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f748;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" identifier = (binary_expression "iVar14 + 4" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) )) ;) (if_statement "if (1 < uVar6) goto LAB_0004f360;" if (parenthesized_expression "(1 < uVar6)" ( (binary_expression "1 < uVar6" number_literal < identifier) )) (goto_statement "goto LAB_0004f360;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004f748:\n              putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) }))) }))) })) (labeled_statement "LAB_0004f360:\n        uVar4 = uVar4 + 1;" statement_identifier : (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;)) (expression_statement "uVar16 = uVar5 + 8;" (assignment_expression "uVar16 = uVar5 + 8" identifier = (binary_expression "uVar5 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != uVar4)" ( (binary_expression "uVar9 != uVar4" identifier != identifier) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Corrupt header in the %s section.\n";" (assignment_expression "pcVar2 = "Corrupt header in the %s section.\n"" identifier = (string_literal ""Corrupt header in the %s section.\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar12,iVar1);" (call_expression "warn(uVar12,iVar1)" identifier (argument_list "(uVar12,iVar1)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint display_gdb_index(dwarf_section *section,void *file)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  dwarf_section *in_ECX;\n  uchar *puVar10;\n  uint uVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uint uVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  elf_vma value;\n  uchar *puVar19;\n  undefined4 uVar20;\n  int iVar21;\n  ulonglong uVar22;\n  uint local_54;\n  \n  puVar12 = section->start;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  piVar1 = (int *)((int)&section->size + 4);\n  if (*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1) {\n    pcVar2 = section->name;\n    pcVar3 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  eVar17 = byte_get_little_endian(puVar12,4);\n  pcVar2 = (char *)eVar17;\n  pcVar3 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar3,pcVar2);\n  if ((char *)0x5 < pcVar2 + -3) {\n    pcVar3 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (pcVar2 == (char *)0x3) {\n    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(pcVar3);\nLAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(pcVar3);\nLAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(pcVar3);\nLAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(pcVar3);\n  }\n  else {\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }\n  eVar17 = byte_get_little_endian(puVar12 + 4,4);\n  uVar4 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 8,4);\n  uVar22 = eVar17 & 0xffffffff;\n  eVar17 = byte_get_little_endian(puVar12 + 0xc,4);\n  uVar13 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x10,4);\n  uVar14 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x14,4);\n  uVar7 = (uint)uVar22;\n  uVar5 = (uint)eVar17;\n  uVar6 = *(uint *)((int)&section->size + 4);\n  uVar11 = (uint)section->size;\n  if (((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))) {\n    if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }\n    if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }\n    if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }\n    if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }\n    puVar10 = puVar12 + uVar14;\n    if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }\n    puVar15 = puVar12 + uVar4;\n    uVar6 = uVar7 - uVar4 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar3);\n    iVar21 = (int)uVar22;\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    puVar15 = puVar12 + iVar21;\n    uVar6 = uVar13 - iVar21 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    uVar6 = uVar14 - uVar13;\n    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }\n    uVar6 = uVar5 - uVar14 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }\n    return 1;\n  }\n  pcVar2 = section->name;\n  pcVar3 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  warn(pcVar3,pcVar2);\n  return 0;\n}\n\n" comment (function_definition "int display_gdb_index(dwarf_section *section,void *file)\n\n{\n  int *piVar1;\n  char *pcVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  dwarf_section *in_ECX;\n  uchar *puVar10;\n  uint uVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uint uVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  elf_vma value;\n  uchar *puVar19;\n  undefined4 uVar20;\n  int iVar21;\n  ulonglong uVar22;\n  uint local_54;\n  \n  puVar12 = section->start;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  piVar1 = (int *)((int)&section->size + 4);\n  if (*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1) {\n    pcVar2 = section->name;\n    pcVar3 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  eVar17 = byte_get_little_endian(puVar12,4);\n  pcVar2 = (char *)eVar17;\n  pcVar3 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar3,pcVar2);\n  if ((char *)0x5 < pcVar2 + -3) {\n    pcVar3 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (pcVar2 == (char *)0x3) {\n    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(pcVar3);\nLAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(pcVar3);\nLAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(pcVar3);\nLAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(pcVar3);\n  }\n  else {\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }\n  eVar17 = byte_get_little_endian(puVar12 + 4,4);\n  uVar4 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 8,4);\n  uVar22 = eVar17 & 0xffffffff;\n  eVar17 = byte_get_little_endian(puVar12 + 0xc,4);\n  uVar13 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x10,4);\n  uVar14 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x14,4);\n  uVar7 = (uint)uVar22;\n  uVar5 = (uint)eVar17;\n  uVar6 = *(uint *)((int)&section->size + 4);\n  uVar11 = (uint)section->size;\n  if (((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))) {\n    if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }\n    if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }\n    if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }\n    if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }\n    puVar10 = puVar12 + uVar14;\n    if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }\n    puVar15 = puVar12 + uVar4;\n    uVar6 = uVar7 - uVar4 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar3);\n    iVar21 = (int)uVar22;\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    puVar15 = puVar12 + iVar21;\n    uVar6 = uVar13 - iVar21 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    uVar6 = uVar14 - uVar13;\n    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }\n    uVar6 = uVar5 - uVar14 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }\n    return 1;\n  }\n  pcVar2 = section->name;\n  pcVar3 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  warn(pcVar3,pcVar2);\n  return 0;\n}" primitive_type (function_declarator "display_gdb_index(dwarf_section *section,void *file)" identifier (parameter_list "(dwarf_section *section,void *file)" ( (parameter_declaration "dwarf_section *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "void *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  char *pcVar2;\n  char *pcVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  dwarf_section *in_ECX;\n  uchar *puVar10;\n  uint uVar11;\n  uchar *puVar12;\n  uint uVar13;\n  uint uVar14;\n  uchar *puVar15;\n  uint uVar16;\n  elf_vma eVar17;\n  elf_vma eVar18;\n  elf_vma value;\n  uchar *puVar19;\n  undefined4 uVar20;\n  int iVar21;\n  ulonglong uVar22;\n  uint local_54;\n  \n  puVar12 = section->start;\n  introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);\n  piVar1 = (int *)((int)&section->size + 4);\n  if (*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1) {\n    pcVar2 = section->name;\n    pcVar3 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  eVar17 = byte_get_little_endian(puVar12,4);\n  pcVar2 = (char *)eVar17;\n  pcVar3 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar3,pcVar2);\n  if ((char *)0x5 < pcVar2 + -3) {\n    pcVar3 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (pcVar2 == (char *)0x3) {\n    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(pcVar3);\nLAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(pcVar3);\nLAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(pcVar3);\nLAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(pcVar3);\n  }\n  else {\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }\n  eVar17 = byte_get_little_endian(puVar12 + 4,4);\n  uVar4 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 8,4);\n  uVar22 = eVar17 & 0xffffffff;\n  eVar17 = byte_get_little_endian(puVar12 + 0xc,4);\n  uVar13 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x10,4);\n  uVar14 = (uint)eVar17;\n  eVar17 = byte_get_little_endian(puVar12 + 0x14,4);\n  uVar7 = (uint)uVar22;\n  uVar5 = (uint)eVar17;\n  uVar6 = *(uint *)((int)&section->size + 4);\n  uVar11 = (uint)section->size;\n  if (((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))) {\n    if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }\n    if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }\n    if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }\n    if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }\n    puVar10 = puVar12 + uVar14;\n    if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }\n    puVar15 = puVar12 + uVar4;\n    uVar6 = uVar7 - uVar4 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar3);\n    iVar21 = (int)uVar22;\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    puVar15 = puVar12 + iVar21;\n    uVar6 = uVar13 - iVar21 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    uVar6 = uVar14 - uVar13;\n    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }\n    uVar6 = uVar5 - uVar14 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }\n    return 1;\n  }\n  pcVar2 = section->name;\n  pcVar3 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);\n  warn(pcVar3,pcVar2);\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "dwarf_section *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "uchar *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uchar *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "elf_vma eVar17;" type_identifier identifier ;) (declaration "elf_vma eVar18;" type_identifier identifier ;) (declaration "elf_vma value;" type_identifier identifier ;) (declaration "uchar *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "ulonglong uVar22;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (expression_statement "puVar12 = section->start;" (assignment_expression "puVar12 = section->start" identifier = (field_expression "section->start" identifier -> field_identifier)) ;) (expression_statement "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX);" (call_expression "introduce((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX)" identifier (argument_list "((dwarf_section *)section->name,(bfd_boolean)&section->filename,in_ECX)" ( (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 ))) ;) (expression_statement "piVar1 = (int *)((int)&section->size + 4);" (assignment_expression "piVar1 = (int *)((int)&section->size + 4)" identifier = (cast_expression "(int *)((int)&section->size + 4)" ( (type_descriptor "int *" primitive_type (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 (*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1) {\n    pcVar2 = section->name;\n    pcVar3 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "(*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1)" ( (binary_expression "*piVar1 == 0 && (uint)(0x17 < (uint)section->size) <= (uint)-*piVar1" (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) && (binary_expression "(uint)(0x17 < (uint)section->size) <= (uint)-*piVar1" (call_expression "(uint)(0x17 < (uint)section->size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x17 < (uint)section->size)" ( (binary_expression "0x17 < (uint)section->size" number_literal < (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ))) <= (binary_expression "(uint)-*piVar1" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*piVar1" * identifier)))) )) (compound_statement "{\n    pcVar2 = section->name;\n    pcVar3 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "pcVar2 = section->name;" (assignment_expression "pcVar2 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar3 = "Truncated header in the %s section.\n";" (assignment_expression "pcVar3 = "Truncated header in the %s section.\n"" identifier = (string_literal ""Truncated header in the %s section.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (expression_statement "eVar17 = byte_get_little_endian(puVar12,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12,4)" identifier = (call_expression "byte_get_little_endian(puVar12,4)" identifier (argument_list "(puVar12,4)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)eVar17;" (assignment_expression "pcVar2 = (char *)eVar17" identifier = (cast_expression "(char *)eVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"Version %ld\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Version %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version %ld\n",5)" identifier (argument_list "(0,"Version %ld\n",5)" ( number_literal , (string_literal ""Version %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,pcVar2);" (call_expression "printf(pcVar3,pcVar2)" identifier (argument_list "(pcVar3,pcVar2)" ( identifier , identifier ))) ;) (if_statement "if ((char *)0x5 < pcVar2 + -3) {\n    pcVar3 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "((char *)0x5 < pcVar2 + -3)" ( (binary_expression "(char *)0x5 < pcVar2 + -3" (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < (binary_expression "pcVar2 + -3" identifier + number_literal)) )) (compound_statement "{\n    pcVar3 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "pcVar3 = "Unsupported version %lu.\n";" (assignment_expression "pcVar3 = "Unsupported version %lu.\n"" identifier = (string_literal ""Unsupported version %lu.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (if_statement "if (pcVar2 == (char *)0x3) {\n    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(pcVar3);\nLAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(pcVar3);\nLAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(pcVar3);\nLAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(pcVar3);\n  }\n  else {\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }" if (parenthesized_expression "(pcVar2 == (char *)0x3)" ( (binary_expression "pcVar2 == (char *)0x3" identifier == (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(pcVar3);\nLAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(pcVar3);\nLAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(pcVar3);\nLAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(pcVar3);\n  }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier (argument_list "(0,"The address table data in version 3 may be wrong.\n",5)" ( number_literal , (string_literal ""The address table data in version 3 may be wrong.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (labeled_statement "LAB_0004f4be:\n    pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier (argument_list "(0,"Version 4 does not support case insensitive lookups.\n",5)" ( number_literal , (string_literal ""Version 4 does not support case insensitive lookups.\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (labeled_statement "LAB_0004f4dc:\n    pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version 5 does not include inlined functions.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier (argument_list "(0,"Version 5 does not include inlined functions.\n",5)" ( number_literal , (string_literal ""Version 5 does not include inlined functions.\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (labeled_statement "LAB_0004f4fa:\n    pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier (argument_list "(0,"Version 6 does not include symbol attributes.\n",5)" ( number_literal , (string_literal ""Version 6 does not include symbol attributes.\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) }) (else_clause "else {\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }" else (compound_statement "{\n    if (pcVar2 == (char *)0x4) goto LAB_0004f4be;\n    if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;\n    if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;\n  }" { (if_statement "if (pcVar2 == (char *)0x4) goto LAB_0004f4be;" if (parenthesized_expression "(pcVar2 == (char *)0x4)" ( (binary_expression "pcVar2 == (char *)0x4" identifier == (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f4be;" goto statement_identifier ;)) (if_statement "if (pcVar2 == (char *)0x5) goto LAB_0004f4dc;" if (parenthesized_expression "(pcVar2 == (char *)0x5)" ( (binary_expression "pcVar2 == (char *)0x5" identifier == (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f4dc;" goto statement_identifier ;)) (if_statement "if (pcVar2 == (char *)0x6) goto LAB_0004f4fa;" if (parenthesized_expression "(pcVar2 == (char *)0x6)" ( (binary_expression "pcVar2 == (char *)0x6" identifier == (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004f4fa;" goto statement_identifier ;)) }))) (expression_statement "eVar17 = byte_get_little_endian(puVar12 + 4,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + 4,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + 4,4)" identifier (argument_list "(puVar12 + 4,4)" ( (binary_expression "puVar12 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar4 = (uint)eVar17;" (assignment_expression "uVar4 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar12 + 8,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + 8,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + 8,4)" identifier (argument_list "(puVar12 + 8,4)" ( (binary_expression "puVar12 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar22 = eVar17 & 0xffffffff;" (assignment_expression "uVar22 = eVar17 & 0xffffffff" identifier = (binary_expression "eVar17 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar12 + 0xc,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + 0xc,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + 0xc,4)" identifier (argument_list "(puVar12 + 0xc,4)" ( (binary_expression "puVar12 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar13 = (uint)eVar17;" (assignment_expression "uVar13 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar12 + 0x10,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + 0x10,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + 0x10,4)" identifier (argument_list "(puVar12 + 0x10,4)" ( (binary_expression "puVar12 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar14 = (uint)eVar17;" (assignment_expression "uVar14 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar12 + 0x14,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + 0x14,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + 0x14,4)" identifier (argument_list "(puVar12 + 0x14,4)" ( (binary_expression "puVar12 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar7 = (uint)uVar22;" (assignment_expression "uVar7 = (uint)uVar22" identifier = (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = (uint)eVar17;" (assignment_expression "uVar5 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = *(uint *)((int)&section->size + 4);" (assignment_expression "uVar6 = *(uint *)((int)&section->size + 4)" identifier = (pointer_expression "*(uint *)((int)&section->size + 4)" * (cast_expression "(uint *)((int)&section->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&section->size + 4)" ( (binary_expression "(int)&section->size + 4" (cast_expression "(int)&section->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&section->size" & (field_expression "section->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar11 = (uint)section->size;" (assignment_expression "uVar11 = (uint)section->size" identifier = (cast_expression "(uint)section->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "section->size" identifier -> field_identifier))) ;) (if_statement "if (((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))) {\n    if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }\n    if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }\n    if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }\n    if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }\n    puVar10 = puVar12 + uVar14;\n    if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }\n    puVar15 = puVar12 + uVar4;\n    uVar6 = uVar7 - uVar4 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar3);\n    iVar21 = (int)uVar22;\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    puVar15 = puVar12 + iVar21;\n    uVar6 = uVar13 - iVar21 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    uVar6 = uVar14 - uVar13;\n    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }\n    uVar6 = uVar5 - uVar14 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }\n    return 1;\n  }" if (parenthesized_expression "(((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6))))" ( (binary_expression "((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))\n     && (((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))" (parenthesized_expression "((((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6))" ( (binary_expression "(((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)) && ((uVar11 < uVar13) <= uVar6)" (parenthesized_expression "(((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6))" ( (binary_expression "((uVar11 < uVar4) <= uVar6) && ((uVar11 < uVar7) <= uVar6)" (parenthesized_expression "((uVar11 < uVar4) <= uVar6)" ( (binary_expression "(uVar11 < uVar4) <= uVar6" (parenthesized_expression "(uVar11 < uVar4)" ( (binary_expression "uVar11 < uVar4" identifier < identifier) )) <= identifier) )) && (parenthesized_expression "((uVar11 < uVar7) <= uVar6)" ( (binary_expression "(uVar11 < uVar7) <= uVar6" (parenthesized_expression "(uVar11 < uVar7)" ( (binary_expression "uVar11 < uVar7" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "((uVar11 < uVar13) <= uVar6)" ( (binary_expression "(uVar11 < uVar13) <= uVar6" (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "(((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)))" ( (parenthesized_expression "((uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6))" ( (binary_expression "(uVar11 < uVar14) <= uVar6 && ((uVar11 < uVar5) <= uVar6)" (binary_expression "(uVar11 < uVar14) <= uVar6" (parenthesized_expression "(uVar11 < uVar14)" ( (binary_expression "uVar11 < uVar14" identifier < identifier) )) <= identifier) && (parenthesized_expression "((uVar11 < uVar5) <= uVar6)" ( (binary_expression "(uVar11 < uVar5) <= uVar6" (parenthesized_expression "(uVar11 < uVar5)" ( (binary_expression "uVar11 < uVar5" identifier < identifier) )) <= identifier) ))) )) ))) )) (compound_statement "{\n    if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }\n    if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }\n    if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }\n    if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }\n    puVar10 = puVar12 + uVar14;\n    if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }\n    puVar15 = puVar12 + uVar4;\n    uVar6 = uVar7 - uVar4 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar3);\n    iVar21 = (int)uVar22;\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    puVar15 = puVar12 + iVar21;\n    uVar6 = uVar13 - iVar21 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }\n    uVar6 = uVar14 - uVar13;\n    pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }\n    uVar6 = uVar5 - uVar14 >> 3;\n    pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar3);\n    if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }\n    return 1;\n  }" { (if_statement "if (uVar7 < uVar4) {\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar7 < uVar4)" ( (binary_expression "uVar7 < uVar4" identifier < identifier) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(pcVar3,uVar7,uVar4);\n      return 0;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier (argument_list "(0,"TU offset (%x) is less than CU offset (%x)\n",5)" ( number_literal , (string_literal ""TU offset (%x) is less than CU offset (%x)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar7,uVar4);" (call_expression "warn(pcVar3,uVar7,uVar4)" identifier (argument_list "(pcVar3,uVar7,uVar4)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar13 < uVar7) {\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }" if (parenthesized_expression "(uVar13 < uVar7)" ( (binary_expression "uVar13 < uVar7" identifier < identifier) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(pcVar3,uVar13,uVar7);\n      return 0;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier (argument_list "(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" ( number_literal , (string_literal ""Address table offset (%x) is less than TU offset (%x)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar13,uVar7);" (call_expression "warn(pcVar3,uVar13,uVar7)" identifier (argument_list "(pcVar3,uVar13,uVar7)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar14 < uVar13) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "(uVar14 < uVar13)" ( (binary_expression "uVar14 < uVar13" identifier < identifier) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar14,uVar13);\n      return 0;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5)" identifier (argument_list "(0,\n                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"\n                                 ,5)" ( number_literal , (string_literal ""Symbol table offset (%x) is less then Address table offset (%x)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar14,uVar13);" (call_expression "warn(pcVar3,uVar14,uVar13)" identifier (argument_list "(pcVar3,uVar14,uVar13)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar5 < uVar14) {\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }" if (parenthesized_expression "(uVar5 < uVar14)" ( (binary_expression "uVar5 < uVar14" identifier < identifier) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);\n      warn(pcVar3,uVar5,uVar14);\n      return 0;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5)" identifier (argument_list "(0,\n                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"\n                                 ,5)" ( number_literal , (string_literal ""Constant pool offset (%x) is less than symbol table offset (%x)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar5,uVar14);" (call_expression "warn(pcVar3,uVar5,uVar14)" identifier (argument_list "(pcVar3,uVar5,uVar14)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar10 = puVar12 + uVar14;" (assignment_expression "puVar10 = puVar12 + uVar14" identifier = (binary_expression "puVar12 + uVar14" identifier + identifier)) ;) (if_statement "if (section->start + uVar11 < puVar10) {\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }" if (parenthesized_expression "(section->start + uVar11 < puVar10)" ( (binary_expression "section->start + uVar11 < puVar10" (binary_expression "section->start + uVar11" (field_expression "section->start" identifier -> field_identifier) + identifier) < identifier) )) (compound_statement "{\n      pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(pcVar3);\n      return 0;\n    }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Address table extends beyond end of section.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier (argument_list "(0,"Address table extends beyond end of section.\n",5)" ( number_literal , (string_literal ""Address table extends beyond end of section.\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3);" (call_expression "warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar15 = puVar12 + uVar4;" (assignment_expression "puVar15 = puVar12 + uVar4" identifier = (binary_expression "puVar12 + uVar4" identifier + identifier)) ;) (expression_statement "uVar6 = uVar7 - uVar4 >> 3;" (assignment_expression "uVar6 = uVar7 - uVar4 >> 3" identifier = (binary_expression "uVar7 - uVar4 >> 3" (binary_expression "uVar7 - uVar4" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"\nCU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nCU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nCU table:\n",5)" identifier (argument_list "(0,"\nCU table:\n",5)" ( number_literal , (string_literal ""\nCU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);" do (compound_statement "{\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        puVar15 = puVar15 + 0x10;\n        eVar18 = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar16 = uVar11 + 2;\n        printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);\n        iVar21 = (int)uVar22;\n        uVar11 = uVar16;\n      }" { (expression_statement "eVar17 = byte_get_little_endian(puVar15,8);" (assignment_expression "eVar17 = byte_get_little_endian(puVar15,8)" identifier = (call_expression "byte_get_little_endian(puVar15,8)" identifier (argument_list "(puVar15,8)" ( identifier , number_literal )))) ;) (expression_statement "puVar19 = puVar15 + 8;" (assignment_expression "puVar19 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 0x10;" (assignment_expression "puVar15 = puVar15 + 0x10" identifier = (binary_expression "puVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "eVar18 = byte_get_little_endian(puVar19,8);" (assignment_expression "eVar18 = byte_get_little_endian(puVar19,8)" identifier = (call_expression "byte_get_little_endian(puVar19,8)" identifier (argument_list "(puVar19,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier (argument_list "(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( number_literal , (string_literal ""[%3u] 0x%lx - 0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar16 = uVar11 + 2;" (assignment_expression "uVar16 = uVar11 + 2" identifier = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18);" (call_expression "printf(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18)" identifier (argument_list "(pcVar3,uVar11 >> 1,(int)eVar17,(int)eVar17 + -1 + (int)eVar18)" ( identifier , (binary_expression "uVar11 >> 1" identifier >> number_literal) , (cast_expression "(int)eVar17" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(int)eVar17 + -1 + (int)eVar18" (binary_expression "(int)eVar17 + -1" (cast_expression "(int)eVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)eVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) )) ;) })) (expression_statement "puVar15 = puVar12 + iVar21;" (assignment_expression "puVar15 = puVar12 + iVar21" identifier = (binary_expression "puVar12 + iVar21" identifier + identifier)) ;) (expression_statement "uVar6 = uVar13 - iVar21 >> 3;" (assignment_expression "uVar6 = uVar13 - iVar21 >> 3" identifier = (binary_expression "uVar13 - iVar21 >> 3" (binary_expression "uVar13 - iVar21" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"\nTU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nTU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nTU table:\n",5)" identifier (argument_list "(0,"\nTU table:\n",5)" ( number_literal , (string_literal ""\nTU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (if_statement "if (uVar6 != 0) {\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = 0;\n      do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);\n    }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      } while (uVar16 < uVar6);" do (compound_statement "{\n        eVar17 = byte_get_little_endian(puVar15,8);\n        eVar18 = byte_get_little_endian(puVar15 + 8,8);\n        puVar19 = puVar15 + 0x10;\n        puVar15 = puVar15 + 0x18;\n        value = byte_get_little_endian(puVar19,8);\n        pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar16 = uVar11 + 3;\n        printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);\n        print_dwarf_vma(value,(uint)value);\n        putchar(10);\n        uVar11 = uVar16;\n      }" { (expression_statement "eVar17 = byte_get_little_endian(puVar15,8);" (assignment_expression "eVar17 = byte_get_little_endian(puVar15,8)" identifier = (call_expression "byte_get_little_endian(puVar15,8)" identifier (argument_list "(puVar15,8)" ( identifier , number_literal )))) ;) (expression_statement "eVar18 = byte_get_little_endian(puVar15 + 8,8);" (assignment_expression "eVar18 = byte_get_little_endian(puVar15 + 8,8)" identifier = (call_expression "byte_get_little_endian(puVar15 + 8,8)" identifier (argument_list "(puVar15 + 8,8)" ( (binary_expression "puVar15 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "puVar19 = puVar15 + 0x10;" (assignment_expression "puVar19 = puVar15 + 0x10" identifier = (binary_expression "puVar15 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar15 + 0x18;" (assignment_expression "puVar15 = puVar15 + 0x18" identifier = (binary_expression "puVar15 + 0x18" identifier + number_literal)) ;) (expression_statement "value = byte_get_little_endian(puVar19,8);" (assignment_expression "value = byte_get_little_endian(puVar19,8)" identifier = (call_expression "byte_get_little_endian(puVar19,8)" identifier (argument_list "(puVar19,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier (argument_list "(0,"[%3u] 0x%lx 0x%lx ",5)" ( number_literal , (string_literal ""[%3u] 0x%lx 0x%lx "" " string_content ") , number_literal ))))) ;) (expression_statement "uVar16 = uVar11 + 3;" (assignment_expression "uVar16 = uVar11 + 3" identifier = (binary_expression "uVar11 + 3" identifier + number_literal)) ;) (expression_statement "printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18);" (call_expression "printf(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18)" identifier (argument_list "(pcVar3,uVar11 / 3,(int)eVar17,(int)eVar18)" ( identifier , (binary_expression "uVar11 / 3" identifier / number_literal) , (cast_expression "(int)eVar17" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)eVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "print_dwarf_vma(value,(uint)value);" (call_expression "print_dwarf_vma(value,(uint)value)" identifier (argument_list "(value,(uint)value)" ( identifier , (cast_expression "(uint)value" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar11 = uVar16;" (assignment_expression "uVar11 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) )) ;) })) (expression_statement "uVar6 = uVar14 - uVar13;" (assignment_expression "uVar6 = uVar14 - uVar13" identifier = (binary_expression "uVar14 - uVar13" identifier - identifier)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"\nAddress table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nAddress table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nAddress table:\n",5)" identifier (argument_list "(0,"\nAddress table:\n",5)" ( number_literal , (string_literal ""\nAddress table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (if_statement "if (uVar6 != 0) {\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar15 = puVar12 + uVar13 + 8;\n      uVar11 = 0;\n      do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);\n    }" { (expression_statement "puVar15 = puVar12 + uVar13 + 8;" (assignment_expression "puVar15 = puVar12 + uVar13 + 8" identifier = (binary_expression "puVar12 + uVar13 + 8" (binary_expression "puVar12 + uVar13" identifier + identifier) + number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      } while (uVar11 <= uVar6 - 0x14);" do (compound_statement "{\n        uVar11 = uVar11 + 0x14;\n        eVar17 = byte_get_little_endian(puVar15 + -8,8);\n        uVar13 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar15,8);\n        puVar19 = puVar15 + 8;\n        uVar20 = 4;\n        eVar18 = byte_get_little_endian(puVar19,4);\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);\n        local_54 = (uint)eVar17;\n        print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);\n        pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar3,(int)eVar18);\n        if (uVar6 <= uVar11) break;\n        puVar15 = puVar15 + 0x14;\n      }" { (expression_statement "uVar11 = uVar11 + 0x14;" (assignment_expression "uVar11 = uVar11 + 0x14" identifier = (binary_expression "uVar11 + 0x14" identifier + number_literal)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar15 + -8,8);" (assignment_expression "eVar17 = byte_get_little_endian(puVar15 + -8,8)" identifier = (call_expression "byte_get_little_endian(puVar15 + -8,8)" identifier (argument_list "(puVar15 + -8,8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar13 = (uint)eVar17;" (assignment_expression "uVar13 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar15,8);" (assignment_expression "eVar17 = byte_get_little_endian(puVar15,8)" identifier = (call_expression "byte_get_little_endian(puVar15,8)" identifier (argument_list "(puVar15,8)" ( identifier , number_literal )))) ;) (expression_statement "puVar19 = puVar15 + 8;" (assignment_expression "puVar19 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) (expression_statement "uVar20 = 4;" (assignment_expression "uVar20 = 4" identifier = number_literal) ;) (expression_statement "eVar18 = byte_get_little_endian(puVar19,4);" (assignment_expression "eVar18 = byte_get_little_endian(puVar19,4)" identifier = (call_expression "byte_get_little_endian(puVar19,4)" identifier (argument_list "(puVar19,4)" ( identifier , number_literal )))) ;) (expression_statement "print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13);" (call_expression "print_dwarf_vma(CONCAT44(uVar20,puVar19),uVar13)" identifier (argument_list "(CONCAT44(uVar20,puVar19),uVar13)" ( (call_expression "CONCAT44(uVar20,puVar19)" identifier (argument_list "(uVar20,puVar19)" ( identifier , identifier ))) , identifier ))) ;) (expression_statement "local_54 = (uint)eVar17;" (assignment_expression "local_54 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54);" (call_expression "print_dwarf_vma(CONCAT44(uVar20,puVar19),local_54)" identifier (argument_list "(CONCAT44(uVar20,puVar19),local_54)" ( (call_expression "CONCAT44(uVar20,puVar19)" identifier (argument_list "(uVar20,puVar19)" ( identifier , identifier ))) , identifier ))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,&DAT_0007c447,5)" identifier = (cast_expression "(char *)dcgettext(0,&DAT_0007c447,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,&DAT_0007c447,5)" identifier (argument_list "(0,&DAT_0007c447,5)" ( number_literal , (pointer_expression "&DAT_0007c447" & identifier) , number_literal ))))) ;) (expression_statement "printf(pcVar3,(int)eVar18);" (call_expression "printf(pcVar3,(int)eVar18)" identifier (argument_list "(pcVar3,(int)eVar18)" ( identifier , (cast_expression "(int)eVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (uVar6 <= uVar11) break;" if (parenthesized_expression "(uVar6 <= uVar11)" ( (binary_expression "uVar6 <= uVar11" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = puVar15 + 0x14;" (assignment_expression "puVar15 = puVar15 + 0x14" identifier = (binary_expression "puVar15 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar11 <= uVar6 - 0x14)" ( (binary_expression "uVar11 <= uVar6 - 0x14" identifier <= (binary_expression "uVar6 - 0x14" identifier - number_literal)) )) ;) })) (expression_statement "uVar6 = uVar5 - uVar14 >> 3;" (assignment_expression "uVar6 = uVar5 - uVar14 >> 3" identifier = (binary_expression "uVar5 - uVar14 >> 3" (binary_expression "uVar5 - uVar14" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"\nSymbol table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nSymbol table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nSymbol table:\n",5)" identifier (argument_list "(0,"\nSymbol table:\n",5)" ( number_literal , (string_literal ""\nSymbol table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (if_statement "if (uVar6 != 0) {\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar12 = puVar12 + uVar5;\n      uVar13 = 0;\n      uVar11 = uVar7 - uVar4 >> 4;\n      do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);\n    }" { (expression_statement "puVar12 = puVar12 + uVar5;" (assignment_expression "puVar12 = puVar12 + uVar5" identifier = (binary_expression "puVar12 + uVar5" identifier + identifier)) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = uVar7 - uVar4 >> 4;" (assignment_expression "uVar11 = uVar7 - uVar4 >> 4" identifier = (binary_expression "uVar7 - uVar4 >> 4" (binary_expression "uVar7 - uVar4" identifier - identifier) >> number_literal)) ;) (do_statement "do {\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      } while (uVar6 != uVar13);" do (compound_statement "{\n        uVar22 = ZEXT48(puVar10);\n        eVar17 = byte_get_little_endian(puVar10,4);\n        uVar4 = (uint)eVar17;\n        eVar17 = byte_get_little_endian(puVar10 + 4,4);\n        iVar21 = (int)uVar22;\n        uVar14 = (uint)eVar17;\n        if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar13 = uVar13 + 1;\n        puVar10 = (uchar *)(iVar21 + 8);\n      }" { (expression_statement "uVar22 = ZEXT48(puVar10);" (assignment_expression "uVar22 = ZEXT48(puVar10)" identifier = (call_expression "ZEXT48(puVar10)" identifier (argument_list "(puVar10)" ( identifier )))) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar10,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar10,4)" identifier = (call_expression "byte_get_little_endian(puVar10,4)" identifier (argument_list "(puVar10,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar4 = (uint)eVar17;" (assignment_expression "uVar4 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "eVar17 = byte_get_little_endian(puVar10 + 4,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar10 + 4,4)" identifier = (call_expression "byte_get_little_endian(puVar10 + 4,4)" identifier (argument_list "(puVar10 + 4,4)" ( (binary_expression "puVar10 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar14 = (uint)eVar17;" (assignment_expression "uVar14 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar4 != 0 || uVar14 != 0) {\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" if (parenthesized_expression "(uVar4 != 0 || uVar14 != 0)" ( (binary_expression "uVar4 != 0 || uVar14 != 0" (binary_expression "uVar4 != 0" identifier != number_literal) || (binary_expression "uVar14 != 0" identifier != number_literal)) )) (compound_statement "{\n          if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }\n          iVar21 = (int)uVar22;\n          if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" { (if_statement "if ((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)) {\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }\n          else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }" if (parenthesized_expression "((CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4))" ( (binary_expression "(CARRY4((uint)puVar12,uVar4)) ||\n             (iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)" (parenthesized_expression "(CARRY4((uint)puVar12,uVar4))" ( (call_expression "CARRY4((uint)puVar12,uVar4)" identifier (argument_list "((uint)puVar12,uVar4)" ( (cast_expression "(uint)puVar12" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))) )) || (parenthesized_expression "(iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4)" ( (comma_expression "iVar21 = (int)section->size, section->start + iVar21 <= puVar12 + uVar4" (assignment_expression "iVar21 = (int)section->size" identifier = (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier))) , (binary_expression "section->start + iVar21 <= puVar12 + uVar4" (binary_expression "section->start + iVar21" (field_expression "section->start" identifier -> field_identifier) + identifier) <= (binary_expression "puVar12 + uVar4" identifier + identifier))) ))) )) (compound_statement "{\n            pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar3,uVar13,uVar4);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            uVar7 = uVar13;\n            warn(pcVar3,uVar4,uVar13);\n          }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier (argument_list "(0,"[%3u] <corrupt offset: %x>",5)" ( number_literal , (string_literal ""[%3u] <corrupt offset: %x>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,uVar13,uVar4);" (call_expression "printf(pcVar3,uVar13,uVar4)" identifier (argument_list "(pcVar3,uVar13,uVar4)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" identifier (argument_list "(0,\n                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" ( number_literal , (string_literal ""Corrupt name offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar7 = uVar13;" (assignment_expression "uVar7 = uVar13" identifier = identifier) ;) (expression_statement "warn(pcVar3,uVar4,uVar13);" (call_expression "warn(pcVar3,uVar4,uVar13)" identifier (argument_list "(pcVar3,uVar4,uVar13)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }" else (compound_statement "{\n            uVar7 = (iVar21 - uVar5) - uVar4;\n            printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);\n          }" { (expression_statement "uVar7 = (iVar21 - uVar5) - uVar4;" (assignment_expression "uVar7 = (iVar21 - uVar5) - uVar4" identifier = (binary_expression "(iVar21 - uVar5) - uVar4" (parenthesized_expression "(iVar21 - uVar5)" ( (binary_expression "iVar21 - uVar5" identifier - identifier) )) - identifier)) ;) (expression_statement "printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4);" (call_expression "printf("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4)" identifier (argument_list "("[%3u] %.*s:",uVar13,uVar7,puVar12 + uVar4)" ( (string_literal ""[%3u] %.*s:"" " string_content ") , identifier , identifier , (binary_expression "puVar12 + uVar4" identifier + identifier) ))) ;) }))) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)) {\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }\n          else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" if (parenthesized_expression "((CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14))" ( (binary_expression "(CARRY4((uint)puVar12,uVar14)) ||\n             (section->start + (int)section->size + -3 <= puVar12 + uVar14)" (parenthesized_expression "(CARRY4((uint)puVar12,uVar14))" ( (call_expression "CARRY4((uint)puVar12,uVar14)" identifier (argument_list "((uint)puVar12,uVar14)" ( (cast_expression "(uint)puVar12" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))) )) || (parenthesized_expression "(section->start + (int)section->size + -3 <= puVar12 + uVar14)" ( (binary_expression "section->start + (int)section->size + -3 <= puVar12 + uVar14" (binary_expression "section->start + (int)section->size + -3" (binary_expression "section->start + (int)section->size" (field_expression "section->start" identifier -> field_identifier) + (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier))) + number_literal) <= (binary_expression "puVar12 + uVar14" identifier + identifier)) ))) )) (compound_statement "{\n            pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar3,uVar14);\n            pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);\n            warn(pcVar3,uVar14,uVar13);\n          }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier (argument_list "(0,"<invalid CU vector offset: %x>\n",5)" ( number_literal , (string_literal ""<invalid CU vector offset: %x>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3,uVar14);" (call_expression "printf(pcVar3,uVar14)" identifier (argument_list "(pcVar3,uVar14)" ( identifier , identifier ))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" identifier (argument_list "(0,\n                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                                       ,5)" ( number_literal , (string_literal ""Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar14,uVar13);" (call_expression "warn(pcVar3,uVar14,uVar13)" identifier (argument_list "(pcVar3,uVar14,uVar13)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" else (compound_statement "{\n            eVar17 = byte_get_little_endian(puVar12 + uVar14,4);\n            iVar21 = (int)uVar22;\n            uVar4 = (uint)eVar17;\n            if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" { (expression_statement "eVar17 = byte_get_little_endian(puVar12 + uVar14,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar12 + uVar14,4)" identifier = (call_expression "byte_get_little_endian(puVar12 + uVar14,4)" identifier (argument_list "(puVar12 + uVar14,4)" ( (binary_expression "puVar12 + uVar14" identifier + identifier) , number_literal )))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar4 = (uint)eVar17;" (assignment_expression "uVar4 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)) {\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }\n            else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" if (parenthesized_expression "(((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12))" ( (binary_expression "((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)) ||\n               (puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)" (parenthesized_expression "((uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4))" ( (binary_expression "(uVar4 * 4 < uVar4) ||\n                (section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)" (parenthesized_expression "(uVar4 * 4 < uVar4)" ( (binary_expression "uVar4 * 4 < uVar4" (binary_expression "uVar4 * 4" identifier * number_literal) < identifier) )) || (parenthesized_expression "(section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4)" ( (binary_expression "section->start + (int)section->size <= puVar12 + uVar4 * 4 + uVar14 + 4" (binary_expression "section->start + (int)section->size" (field_expression "section->start" identifier -> field_identifier) + (cast_expression "(int)section->size" ( (type_descriptor "int" primitive_type) ) (field_expression "section->size" identifier -> field_identifier))) <= (binary_expression "puVar12 + uVar4 * 4 + uVar14 + 4" (binary_expression "puVar12 + uVar4 * 4 + uVar14" (binary_expression "puVar12 + uVar4 * 4" identifier + (binary_expression "uVar4 * 4" identifier * number_literal)) + identifier) + number_literal)) ))) )) || (parenthesized_expression "(puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12)" ( (binary_expression "puVar12 + uVar4 * 4 + uVar14 + 4 < puVar12" (binary_expression "puVar12 + uVar4 * 4 + uVar14 + 4" (binary_expression "puVar12 + uVar4 * 4 + uVar14" (binary_expression "puVar12 + uVar4 * 4" identifier + (binary_expression "uVar4 * 4" identifier * number_literal)) + identifier) + number_literal) < identifier) ))) )) (compound_statement "{\n              printf("<invalid number of CUs: %d>\n",uVar4,uVar7);\n              pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);\n              warn(pcVar3,uVar4,uVar13);\n            }" { (expression_statement "printf("<invalid number of CUs: %d>\n",uVar4,uVar7);" (call_expression "printf("<invalid number of CUs: %d>\n",uVar4,uVar7)" identifier (argument_list "("<invalid number of CUs: %d>\n",uVar4,uVar7)" ( (string_literal ""<invalid number of CUs: %d>\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5)" identifier = (cast_expression "(char *)dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5)" identifier (argument_list "(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"\n                                         ,5)" ( number_literal , (string_literal ""Invalid number of CUs (0x%x) for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "warn(pcVar3,uVar4,uVar13);" (call_expression "warn(pcVar3,uVar4,uVar13)" identifier (argument_list "(pcVar3,uVar4,uVar13)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" else (compound_statement "{\n              if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" { (if_statement "if (uVar4 < 2) {\n                if (uVar4 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n                if (uVar4 != 0) goto LAB_0004f664;\n              }" { (if_statement "if (uVar4 != 0) goto LAB_0004f664;" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004f664;" goto statement_identifier ;)) }) (else_clause "else {\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }" else (compound_statement "{\n                putchar(10);\nLAB_0004f664:\n                uVar20 = 0x20;\n                if (uVar4 != 1) {\n                  uVar20 = 9;\n                }\n                puVar10 = puVar12 + uVar14 + 4;\n                uVar14 = 0;\n                do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);\n                if (1 < uVar4) goto LAB_0004f360;\n              }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_0004f664:\n                uVar20 = 0x20;" statement_identifier : (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;)) (if_statement "if (uVar4 != 1) {\n                  uVar20 = 9;\n                }" if (parenthesized_expression "(uVar4 != 1)" ( (binary_expression "uVar4 != 1" identifier != number_literal) )) (compound_statement "{\n                  uVar20 = 9;\n                }" { (expression_statement "uVar20 = 9;" (assignment_expression "uVar20 = 9" identifier = number_literal) ;) })) (expression_statement "puVar10 = puVar12 + uVar14 + 4;" (assignment_expression "puVar10 = puVar12 + uVar14 + 4" identifier = (binary_expression "puVar12 + uVar14 + 4" (binary_expression "puVar12 + uVar14" identifier + identifier) + number_literal)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                } while (uVar14 < uVar4);" do (compound_statement "{\n                  eVar17 = byte_get_little_endian(puVar10,4);\n                  uVar7 = (uint)eVar17;\n                  uVar16 = uVar7 & 0xffffff;\n                  if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }\n                  uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar9,uVar8);\n                  iVar21 = (int)uVar22;\n                  if (uVar4 == 1) goto LAB_0004f748;\n                  uVar14 = uVar14 + 1;\n                  puVar10 = puVar10 + 4;\n                  putchar(10);\n                  iVar21 = (int)uVar22;\n                }" { (expression_statement "eVar17 = byte_get_little_endian(puVar10,4);" (assignment_expression "eVar17 = byte_get_little_endian(puVar10,4)" identifier = (call_expression "byte_get_little_endian(puVar10,4)" identifier (argument_list "(puVar10,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar7 = (uint)eVar17;" (assignment_expression "uVar7 = (uint)eVar17" identifier = (cast_expression "(uint)eVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar16 = uVar7 & 0xffffff;" (assignment_expression "uVar16 = uVar7 & 0xffffff" identifier = (binary_expression "uVar7 & 0xffffff" identifier & number_literal)) ;) (if_statement "if (uVar16 < uVar11) {\n                    printf("%c%lu",uVar20,uVar16);\n                  }\n                  else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }" if (parenthesized_expression "(uVar16 < uVar11)" ( (binary_expression "uVar16 < uVar11" identifier < identifier) )) (compound_statement "{\n                    printf("%c%lu",uVar20,uVar16);\n                  }" { (expression_statement "printf("%c%lu",uVar20,uVar16);" (call_expression "printf("%c%lu",uVar20,uVar16)" identifier (argument_list "("%c%lu",uVar20,uVar16)" ( (string_literal ""%c%lu"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }" else (compound_statement "{\n                    printf("%cT%lu",uVar20,uVar16 - uVar11);\n                  }" { (expression_statement "printf("%cT%lu",uVar20,uVar16 - uVar11);" (call_expression "printf("%cT%lu",uVar20,uVar16 - uVar11)" identifier (argument_list "("%cT%lu",uVar20,uVar16 - uVar11)" ( (string_literal ""%cT%lu"" " string_content ") , identifier , (binary_expression "uVar16 - uVar11" identifier - identifier) ))) ;) }))) (expression_statement "uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5);" (assignment_expression "uVar8 = dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5)" identifier = (call_expression "dcgettext(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5)" identifier (argument_list "(0,*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4),5)" ( number_literal , (pointer_expression "*(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4)" * (cast_expression "(undefined4 *)(kinds_11357 + (uVar7 >> 0x1c & 7) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(kinds_11357 + (uVar7 >> 0x1c & 7) * 4)" ( (binary_expression "kinds_11357 + (uVar7 >> 0x1c & 7) * 4" identifier + (binary_expression "(uVar7 >> 0x1c & 7) * 4" (parenthesized_expression "(uVar7 >> 0x1c & 7)" ( (binary_expression "uVar7 >> 0x1c & 7" (binary_expression "uVar7 >> 0x1c" identifier >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal )))) ;) (if_statement "if ((int)uVar7 < 0) {\n                    uVar9 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }" if (parenthesized_expression "((int)uVar7 < 0)" ( (binary_expression "(int)uVar7 < 0" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    uVar9 = dcgettext(0,"static",5);\n                  }" { (expression_statement "uVar9 = dcgettext(0,"static",5);" (assignment_expression "uVar9 = dcgettext(0,"static",5)" identifier = (call_expression "dcgettext(0,"static",5)" identifier (argument_list "(0,"static",5)" ( number_literal , (string_literal ""static"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n                    uVar9 = dcgettext(0,"global",5);\n                  }" else (compound_statement "{\n                    uVar9 = dcgettext(0,"global",5);\n                  }" { (expression_statement "uVar9 = dcgettext(0,"global",5);" (assignment_expression "uVar9 = dcgettext(0,"global",5)" identifier = (call_expression "dcgettext(0,"global",5)" identifier (argument_list "(0,"global",5)" ( number_literal , (string_literal ""global"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf(" [%s, %s]",uVar9,uVar8);" (call_expression "printf(" [%s, %s]",uVar9,uVar8)" identifier (argument_list "(" [%s, %s]",uVar9,uVar8)" ( (string_literal "" [%s, %s]"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar4 == 1) goto LAB_0004f748;" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f748;" goto statement_identifier ;)) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 4;" (assignment_expression "puVar10 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "iVar21 = (int)uVar22;" (assignment_expression "iVar21 = (int)uVar22" identifier = (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) while (parenthesized_expression "(uVar14 < uVar4)" ( (binary_expression "uVar14 < uVar4" identifier < identifier) )) ;) (if_statement "if (1 < uVar4) goto LAB_0004f360;" if (parenthesized_expression "(1 < uVar4)" ( (binary_expression "1 < uVar4" number_literal < identifier) )) (goto_statement "goto LAB_0004f360;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004f748:\n              putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) }))) }))) })) (labeled_statement "LAB_0004f360:\n        uVar13 = uVar13 + 1;" statement_identifier : (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;)) (expression_statement "puVar10 = (uchar *)(iVar21 + 8);" (assignment_expression "puVar10 = (uchar *)(iVar21 + 8)" identifier = (cast_expression "(uchar *)(iVar21 + 8)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 8)" ( (binary_expression "iVar21 + 8" identifier + number_literal) )))) ;) }) while (parenthesized_expression "(uVar6 != uVar13)" ( (binary_expression "uVar6 != uVar13" identifier != identifier) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar2 = section->name;" (assignment_expression "pcVar2 = section->name" identifier = (field_expression "section->name" identifier -> field_identifier)) ;) (expression_statement "pcVar3 = "Corrupt header in the %s section.\n";" (assignment_expression "pcVar3 = "Corrupt header in the %s section.\n"" identifier = (string_literal ""Corrupt header in the %s section.\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004f46e:\n  pcVar3 = (char *)dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "warn(pcVar3,pcVar2);" (call_expression "warn(pcVar3,pcVar2)" identifier (argument_list "(pcVar3,pcVar2)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0004ee60(int param_1)\n\n{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}\n\n" (function_definition "undefined4 FUN_0004ee60(int param_1)\n\n{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" type_identifier (function_declarator "FUN_0004ee60(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined8 uVar19;" type_identifier identifier ;) (expression_statement "iVar14 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "FUN_0004eb80();" (call_expression "FUN_0004eb80()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20))" ( (binary_expression "*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) == number_literal) && (binary_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (call_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x17 < *(uint *)(param_1 + 0x1c))" ( (binary_expression "0x17 < *(uint *)(param_1 + 0x1c)" number_literal < (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) ))))) ))) <= (binary_expression "(uint)-*(int *)(param_1 + 0x20)" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))))) )) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Truncated header in the %s section.\n";" (assignment_expression "pcVar2 = "Truncated header in the %s section.\n"" identifier = (string_literal ""Truncated header in the %s section.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_00066f30(iVar14,4);" (assignment_expression "iVar1 = FUN_00066f30(iVar14,4)" identifier = (call_expression "FUN_00066f30(iVar14,4)" identifier (argument_list "(iVar14,4)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Version %ld\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Version %ld\n",5)" identifier (argument_list "(0,"Version %ld\n",5)" ( number_literal , (string_literal ""Version %ld\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,iVar1);" (call_expression "printf(pcVar2,iVar1)" identifier (argument_list "(pcVar2,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" if (parenthesized_expression "(5 < iVar1 - 3U)" ( (binary_expression "5 < iVar1 - 3U" number_literal < (binary_expression "iVar1 - 3U" identifier - number_literal)) )) (compound_statement "{\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" { (expression_statement "pcVar2 = "Unsupported version %lu.\n";" (assignment_expression "pcVar2 = "Unsupported version %lu.\n"" identifier = (string_literal ""Unsupported version %lu.\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_0004f46e;" goto statement_identifier ;) })) (if_statement "if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" if (parenthesized_expression "(iVar1 == 3)" ( (binary_expression "iVar1 == 3" identifier == number_literal) )) (compound_statement "{\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }" { (expression_statement "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier = (call_expression "dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" identifier (argument_list "(0,"The address table data in version 3 may be wrong.\n",5)" ( number_literal , (string_literal ""The address table data in version 3 may be wrong.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier = (call_expression "dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" identifier (argument_list "(0,"Version 4 does not support case insensitive lookups.\n",5)" ( number_literal , (string_literal ""Version 4 does not support case insensitive lookups.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier = (call_expression "dcgettext(0,"Version 5 does not include inlined functions.\n",5)" identifier (argument_list "(0,"Version 5 does not include inlined functions.\n",5)" ( number_literal , (string_literal ""Version 5 does not include inlined functions.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (labeled_statement "LAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier = (call_expression "dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" identifier (argument_list "(0,"Version 6 does not include symbol attributes.\n",5)" ( number_literal , (string_literal ""Version 6 does not include symbol attributes.\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) }) (else_clause "else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" else (compound_statement "{\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" { (if_statement "if (iVar1 == 4) goto LAB_0004f4be;" if (parenthesized_expression "(iVar1 == 4)" ( (binary_expression "iVar1 == 4" identifier == number_literal) )) (goto_statement "goto LAB_0004f4be;" goto statement_identifier ;)) (if_statement "if (iVar1 == 5) goto LAB_0004f4dc;" if (parenthesized_expression "(iVar1 == 5)" ( (binary_expression "iVar1 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0004f4dc;" goto statement_identifier ;)) (if_statement "if (iVar1 == 6) goto LAB_0004f4fa;" if (parenthesized_expression "(iVar1 == 6)" ( (binary_expression "iVar1 == 6" identifier == number_literal) )) (goto_statement "goto LAB_0004f4fa;" goto statement_identifier ;)) }))) (expression_statement "uVar3 = FUN_00066f30(iVar14 + 4,4);" (assignment_expression "uVar3 = FUN_00066f30(iVar14 + 4,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 4,4)" identifier (argument_list "(iVar14 + 4,4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar4 = FUN_00066f30(iVar14 + 8,4);" (assignment_expression "uVar4 = FUN_00066f30(iVar14 + 8,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 8,4)" identifier (argument_list "(iVar14 + 8,4)" ( (binary_expression "iVar14 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar5 = FUN_00066f30(iVar14 + 0xc,4);" (assignment_expression "uVar5 = FUN_00066f30(iVar14 + 0xc,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0xc,4)" identifier (argument_list "(iVar14 + 0xc,4)" ( (binary_expression "iVar14 + 0xc" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar6 = FUN_00066f30(iVar14 + 0x10,4);" (assignment_expression "uVar6 = FUN_00066f30(iVar14 + 0x10,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0x10,4)" identifier (argument_list "(iVar14 + 0x10,4)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar7 = FUN_00066f30(iVar14 + 0x14,4);" (assignment_expression "uVar7 = FUN_00066f30(iVar14 + 0x14,4)" identifier = (call_expression "FUN_00066f30(iVar14 + 0x14,4)" identifier (argument_list "(iVar14 + 0x14,4)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) , number_literal )))) ;) (expression_statement "uVar16 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x20)" identifier = (pointer_expression "*(uint *)(param_1 + 0x20)" * (cast_expression "(uint *)(param_1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" if (parenthesized_expression "(((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))))" ( (binary_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" (parenthesized_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))" ( (binary_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16)" (parenthesized_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16))" ( (binary_expression "((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)" (parenthesized_expression "((uVar9 < uVar3) <= uVar16)" ( (binary_expression "(uVar9 < uVar3) <= uVar16" (parenthesized_expression "(uVar9 < uVar3)" ( (binary_expression "uVar9 < uVar3" identifier < identifier) )) <= identifier) )) && (parenthesized_expression "((uVar9 < uVar4) <= uVar16)" ( (binary_expression "(uVar9 < uVar4) <= uVar16" (parenthesized_expression "(uVar9 < uVar4)" ( (binary_expression "uVar9 < uVar4" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "((uVar9 < uVar5) <= uVar16)" ( (binary_expression "(uVar9 < uVar5) <= uVar16" (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) <= identifier) ))) )) && (parenthesized_expression "(((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" ( (parenthesized_expression "((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))" ( (binary_expression "(uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)" (binary_expression "(uVar9 < uVar6) <= uVar16" (parenthesized_expression "(uVar9 < uVar6)" ( (binary_expression "uVar9 < uVar6" identifier < identifier) )) <= identifier) && (parenthesized_expression "((uVar9 < uVar7) <= uVar16)" ( (binary_expression "(uVar9 < uVar7) <= uVar16" (parenthesized_expression "(uVar9 < uVar7)" ( (binary_expression "uVar9 < uVar7" identifier < identifier) )) <= identifier) ))) )) ))) )) (compound_statement "{\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" { (if_statement "if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" if (parenthesized_expression "(uVar4 < uVar3)" ( (binary_expression "uVar4 < uVar3" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" identifier (argument_list "(0,"TU offset (%x) is less than CU offset (%x)\n",5)" ( number_literal , (string_literal ""TU offset (%x) is less than CU offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar4,uVar3);" (call_expression "warn(uVar12,uVar4,uVar3)" identifier (argument_list "(uVar12,uVar4,uVar3)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" identifier (argument_list "(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" ( number_literal , (string_literal ""Address table offset (%x) is less than TU offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar5,uVar4);" (call_expression "warn(uVar12,uVar5,uVar4)" identifier (argument_list "(uVar12,uVar5,uVar4)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" identifier (argument_list "(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" ( number_literal , (string_literal ""Symbol table offset (%x) is less then Address table offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar6,uVar5);" (call_expression "warn(uVar12,uVar6,uVar5)" identifier (argument_list "(uVar12,uVar6,uVar5)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" if (parenthesized_expression "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" identifier = (call_expression "dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" identifier (argument_list "(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" ( number_literal , (string_literal ""Constant pool offset (%x) is less than symbol table offset (%x)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar7,uVar6);" (call_expression "warn(uVar12,uVar7,uVar6)" identifier (argument_list "(uVar12,uVar7,uVar6)" ( identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar16 = uVar6 + iVar14;" (assignment_expression "uVar16 = uVar6 + iVar14" identifier = (binary_expression "uVar6 + iVar14" identifier + identifier)) ;) (if_statement "if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" if (parenthesized_expression "(uVar9 + *(int *)(param_1 + 0x10) < uVar16)" ( (binary_expression "uVar9 + *(int *)(param_1 + 0x10) < uVar16" (binary_expression "uVar9 + *(int *)(param_1 + 0x10)" identifier + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) < identifier) )) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" { (expression_statement "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier = (call_expression "dcgettext(0,"Address table extends beyond end of section.\n",5)" identifier (argument_list "(0,"Address table extends beyond end of section.\n",5)" ( number_literal , (string_literal ""Address table extends beyond end of section.\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar8 = uVar4 - uVar3;" (assignment_expression "uVar8 = uVar4 - uVar3" identifier = (binary_expression "uVar4 - uVar3" identifier - identifier)) ;) (expression_statement "iVar1 = uVar3 + iVar14;" (assignment_expression "iVar1 = uVar3 + iVar14" identifier = (binary_expression "uVar3 + iVar14" identifier + identifier)) ;) (expression_statement "uVar9 = uVar8 >> 3;" (assignment_expression "uVar9 = uVar8 >> 3" identifier = (binary_expression "uVar8 >> 3" identifier >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nCU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nCU table:\n",5)" identifier (argument_list "(0,"\nCU table:\n",5)" ( number_literal , (string_literal ""\nCU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);" do (compound_statement "{\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      }" { (expression_statement "iVar10 = FUN_00066f30(iVar1,8);" (assignment_expression "iVar10 = FUN_00066f30(iVar1,8)" identifier = (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal )))) ;) (expression_statement "iVar11 = iVar1 + 8;" (assignment_expression "iVar11 = iVar1 + 8" identifier = (binary_expression "iVar1 + 8" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0x10;" (assignment_expression "iVar1 = iVar1 + 0x10" identifier = (binary_expression "iVar1 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar11 = FUN_00066f30(iVar11,8);" (assignment_expression "iVar11 = FUN_00066f30(iVar11,8)" identifier = (call_expression "FUN_00066f30(iVar11,8)" identifier (argument_list "(iVar11,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" identifier (argument_list "(0,"[%3u] 0x%lx - 0x%lx\n",5)" ( number_literal , (string_literal ""[%3u] 0x%lx - 0x%lx\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "uVar18 = uVar3 + 2;" (assignment_expression "uVar18 = uVar3 + 2" identifier = (binary_expression "uVar3 + 2" identifier + number_literal)) ;) (expression_statement "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);" (call_expression "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" identifier (argument_list "(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" ( identifier , (binary_expression "uVar3 >> 1" identifier >> number_literal) , identifier , (binary_expression "iVar10 + -1 + iVar11" (binary_expression "iVar10 + -1" identifier + number_literal) + identifier) ))) ;) (expression_statement "uVar3 = uVar18;" (assignment_expression "uVar3 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar18 < uVar9)" ( (binary_expression "uVar18 < uVar9" identifier < identifier) )) ;) })) (expression_statement "iVar1 = uVar4 + iVar14;" (assignment_expression "iVar1 = uVar4 + iVar14" identifier = (binary_expression "uVar4 + iVar14" identifier + identifier)) ;) (expression_statement "uVar9 = uVar5 - uVar4 >> 3;" (assignment_expression "uVar9 = uVar5 - uVar4 >> 3" identifier = (binary_expression "uVar5 - uVar4 >> 3" (binary_expression "uVar5 - uVar4" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nTU table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nTU table:\n",5)" identifier (argument_list "(0,"\nTU table:\n",5)" ( number_literal , (string_literal ""\nTU table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);" do (compound_statement "{\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      }" { (expression_statement "uVar12 = FUN_00066f30(iVar1,8);" (assignment_expression "uVar12 = FUN_00066f30(iVar1,8)" identifier = (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal )))) ;) (expression_statement "uVar13 = FUN_00066f30(iVar1 + 8,8);" (assignment_expression "uVar13 = FUN_00066f30(iVar1 + 8,8)" identifier = (call_expression "FUN_00066f30(iVar1 + 8,8)" identifier (argument_list "(iVar1 + 8,8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "iVar11 = iVar1 + 0x10;" (assignment_expression "iVar11 = iVar1 + 0x10" identifier = (binary_expression "iVar1 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar1 = iVar1 + 0x18;" (assignment_expression "iVar1 = iVar1 + 0x18" identifier = (binary_expression "iVar1 + 0x18" identifier + number_literal)) ;) (expression_statement "uVar19 = FUN_00066f30(iVar11,8);" (assignment_expression "uVar19 = FUN_00066f30(iVar11,8)" identifier = (call_expression "FUN_00066f30(iVar11,8)" identifier (argument_list "(iVar11,8)" ( identifier , number_literal )))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" identifier (argument_list "(0,"[%3u] 0x%lx 0x%lx ",5)" ( number_literal , (string_literal ""[%3u] 0x%lx 0x%lx "" " string_content ") , number_literal ))))) ;) (expression_statement "uVar4 = uVar3 + 3;" (assignment_expression "uVar4 = uVar3 + 3" identifier = (binary_expression "uVar3 + 3" identifier + number_literal)) ;) (expression_statement "printf(pcVar2,uVar3 / 3,uVar12,uVar13);" (call_expression "printf(pcVar2,uVar3 / 3,uVar12,uVar13)" identifier (argument_list "(pcVar2,uVar3 / 3,uVar12,uVar13)" ( identifier , (binary_expression "uVar3 / 3" identifier / number_literal) , identifier , identifier ))) ;) (expression_statement "FUN_0004ce60(uVar19);" (call_expression "FUN_0004ce60(uVar19)" identifier (argument_list "(uVar19)" ( identifier ))) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "uVar3 = uVar4;" (assignment_expression "uVar3 = uVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar4 < uVar9)" ( (binary_expression "uVar4 < uVar9" identifier < identifier) )) ;) })) (expression_statement "uVar9 = uVar6 - uVar5;" (assignment_expression "uVar9 = uVar6 - uVar5" identifier = (binary_expression "uVar6 - uVar5" identifier - identifier)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nAddress table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nAddress table:\n",5)" identifier (argument_list "(0,"\nAddress table:\n",5)" ( number_literal , (string_literal ""\nAddress table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" { (expression_statement "iVar1 = iVar14 + 8 + uVar5;" (assignment_expression "iVar1 = iVar14 + 8 + uVar5" identifier = (binary_expression "iVar14 + 8 + uVar5" (binary_expression "iVar14 + 8" identifier + number_literal) + identifier)) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);" do (compound_statement "{\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      }" { (expression_statement "uVar3 = uVar3 + 0x14;" (assignment_expression "uVar3 = uVar3 + 0x14" identifier = (binary_expression "uVar3 + 0x14" identifier + number_literal)) ;) (expression_statement "FUN_00066f30(iVar1 + -8,8);" (call_expression "FUN_00066f30(iVar1 + -8,8)" identifier (argument_list "(iVar1 + -8,8)" ( (binary_expression "iVar1 + -8" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_00066f30(iVar1,8);" (call_expression "FUN_00066f30(iVar1,8)" identifier (argument_list "(iVar1,8)" ( identifier , number_literal ))) ;) (expression_statement "uVar12 = FUN_00066f30(iVar1 + 8,4);" (assignment_expression "uVar12 = FUN_00066f30(iVar1 + 8,4)" identifier = (call_expression "FUN_00066f30(iVar1 + 8,4)" identifier (argument_list "(iVar1 + 8,4)" ( (binary_expression "iVar1 + 8" identifier + number_literal) , number_literal )))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5)" identifier = (cast_expression "(char *)dcgettext(0,&DAT_0007c447,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,&DAT_0007c447,5)" identifier (argument_list "(0,&DAT_0007c447,5)" ( number_literal , (pointer_expression "&DAT_0007c447" & identifier) , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar12);" (call_expression "printf(pcVar2,uVar12)" identifier (argument_list "(pcVar2,uVar12)" ( identifier , identifier ))) ;) (if_statement "if (uVar9 <= uVar3) break;" if (parenthesized_expression "(uVar9 <= uVar3)" ( (binary_expression "uVar9 <= uVar3" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = iVar1 + 0x14;" (assignment_expression "iVar1 = iVar1 + 0x14" identifier = (binary_expression "iVar1 + 0x14" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar3 <= uVar9 - 0x14)" ( (binary_expression "uVar3 <= uVar9 - 0x14" identifier <= (binary_expression "uVar9 - 0x14" identifier - number_literal)) )) ;) })) (expression_statement "uVar9 = uVar7 - uVar6 >> 3;" (assignment_expression "uVar9 = uVar7 - uVar6 >> 3" identifier = (binary_expression "uVar7 - uVar6 >> 3" (binary_expression "uVar7 - uVar6" identifier - identifier) >> number_literal)) ;) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nSymbol table:\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nSymbol table:\n",5)" identifier (argument_list "(0,"\nSymbol table:\n",5)" ( number_literal , (string_literal ""\nSymbol table:\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) (if_statement "if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" { (expression_statement "uVar3 = iVar14 + uVar7;" (assignment_expression "uVar3 = iVar14 + uVar7" identifier = (binary_expression "iVar14 + uVar7" identifier + identifier)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar8 >> 4;" (assignment_expression "uVar8 = uVar8 >> 4" identifier = (binary_expression "uVar8 >> 4" identifier >> number_literal)) ;) (do_statement "do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);" do (compound_statement "{\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      }" { (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" identifier = identifier) ;) (expression_statement "uVar6 = FUN_00066f30(uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar16,4)" identifier = (call_expression "FUN_00066f30(uVar16,4)" identifier (argument_list "(uVar16,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar16 = FUN_00066f30(uVar16 + 4,4);" (assignment_expression "uVar16 = FUN_00066f30(uVar16 + 4,4)" identifier = (call_expression "FUN_00066f30(uVar16 + 4,4)" identifier (argument_list "(uVar16 + 4,4)" ( (binary_expression "uVar16 + 4" identifier + number_literal) , number_literal )))) ;) (if_statement "if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" if (parenthesized_expression "(uVar6 != 0 || uVar16 != 0)" ( (binary_expression "uVar6 != 0 || uVar16 != 0" (binary_expression "uVar6 != 0" identifier != number_literal) || (binary_expression "uVar16 != 0" identifier != number_literal)) )) (compound_statement "{\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" { (if_statement "if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" if (parenthesized_expression "((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6))" ( (binary_expression "(CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" (parenthesized_expression "(CARRY4(uVar3,uVar6))" ( (call_expression "CARRY4(uVar3,uVar6)" identifier (argument_list "(uVar3,uVar6)" ( identifier , identifier ))) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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) )))) + (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) ))))) ))) <= (binary_expression "uVar3 + uVar6" identifier + identifier)) ))) )) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier = (cast_expression "(char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[%3u] <corrupt offset: %x>",5)" identifier (argument_list "(0,"[%3u] <corrupt offset: %x>",5)" ( number_literal , (string_literal ""[%3u] <corrupt offset: %x>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar4,uVar6);" (call_expression "printf(pcVar2,uVar4,uVar6)" identifier (argument_list "(pcVar2,uVar4,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" identifier = (call_expression "dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" identifier (argument_list "(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" ( number_literal , (string_literal ""Corrupt name offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "uVar18 = uVar4;" (assignment_expression "uVar18 = uVar4" identifier = identifier) ;) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" identifier (argument_list "(uVar12,uVar6,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" else (compound_statement "{\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" { (expression_statement "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6" identifier = (binary_expression "(*(int *)(param_1 + 0x1c) - uVar7) - uVar6" (parenthesized_expression "(*(int *)(param_1 + 0x1c) - uVar7)" ( (binary_expression "*(int *)(param_1 + 0x1c) - uVar7" (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) )))) - identifier) )) - identifier)) ;) (expression_statement "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);" (call_expression "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" identifier (argument_list "("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" ( (string_literal ""[%3u] %.*s:"" " string_content ") , identifier , identifier , (binary_expression "uVar3 + uVar6" identifier + identifier) ))) ;) }))) (if_statement "if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" if (parenthesized_expression "((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16))" ( (binary_expression "(CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" (parenthesized_expression "(CARRY4(uVar3,uVar16))" ( (call_expression "CARRY4(uVar3,uVar16)" identifier (argument_list "(uVar3,uVar16)" ( identifier , identifier ))) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16" (call_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" ( (binary_expression "*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)" (binary_expression "*(int *)(param_1 + 0x10) + -3" (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) )))) + number_literal) + (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) ))))) ))) <= (binary_expression "uVar3 + uVar16" identifier + identifier)) ))) )) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }" { (expression_statement "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<invalid CU vector offset: %x>\n",5)" identifier (argument_list "(0,"<invalid CU vector offset: %x>\n",5)" ( number_literal , (string_literal ""<invalid CU vector offset: %x>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar2,uVar16);" (call_expression "printf(pcVar2,uVar16)" identifier (argument_list "(pcVar2,uVar16)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" identifier = (call_expression "dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" identifier (argument_list "(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" ( number_literal , (string_literal ""Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar16,uVar4);" (call_expression "warn(uVar12,uVar16,uVar4)" identifier (argument_list "(uVar12,uVar16,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" else (compound_statement "{\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" { (expression_statement "uVar6 = FUN_00066f30(uVar3 + uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar3 + uVar16,4)" identifier = (call_expression "FUN_00066f30(uVar3 + uVar16,4)" identifier (argument_list "(uVar3 + uVar16,4)" ( (binary_expression "uVar3 + uVar16" identifier + identifier) , number_literal )))) ;) (expression_statement "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;" (assignment_expression "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3" identifier = (binary_expression "uVar6 * 4 + uVar16 + 4 + uVar3" (binary_expression "uVar6 * 4 + uVar16 + 4" (binary_expression "uVar6 * 4 + uVar16" (binary_expression "uVar6 * 4" identifier * number_literal) + identifier) + number_literal) + identifier)) ;) (if_statement "if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" if (parenthesized_expression "(((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3))" ( (binary_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)" (parenthesized_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17))" ( (binary_expression "(uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" (parenthesized_expression "(uVar6 * 4 < uVar6)" ( (binary_expression "uVar6 * 4 < uVar6" (binary_expression "uVar6 * 4" identifier * number_literal) < identifier) )) || (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" ( (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" ( (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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) )))) + (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ))) <= identifier) ))) )) || (parenthesized_expression "(uVar17 < uVar3)" ( (binary_expression "uVar17 < uVar3" identifier < identifier) ))) )) (compound_statement "{\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }" { (expression_statement "printf("<invalid number of CUs: %d>\n",uVar6,uVar18);" (call_expression "printf("<invalid number of CUs: %d>\n",uVar6,uVar18)" identifier (argument_list "("<invalid number of CUs: %d>\n",uVar6,uVar18)" ( (string_literal ""<invalid number of CUs: %d>\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" identifier = (call_expression "dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" identifier (argument_list "(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" ( number_literal , (string_literal ""Invalid number of CUs (0x%x) for symbol table slot %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" identifier (argument_list "(uVar12,uVar6,uVar4)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" else (compound_statement "{\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" { (if_statement "if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n                if (uVar6 != 0) goto LAB_0004f664;\n              }" { (if_statement "if (uVar6 != 0) goto LAB_0004f664;" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004f664;" goto statement_identifier ;)) }) (else_clause "else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" else (compound_statement "{\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (labeled_statement "LAB_0004f664:\n                uVar12 = 0x20;" statement_identifier : (expression_statement "uVar12 = 0x20;" (assignment_expression "uVar12 = 0x20" identifier = number_literal) ;)) (if_statement "if (uVar6 != 1) {\n                  uVar12 = 9;\n                }" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (compound_statement "{\n                  uVar12 = 9;\n                }" { (expression_statement "uVar12 = 9;" (assignment_expression "uVar12 = 9" identifier = number_literal) ;) })) (expression_statement "iVar14 = uVar16 + 4 + uVar3;" (assignment_expression "iVar14 = uVar16 + 4 + uVar3" identifier = (binary_expression "uVar16 + 4 + uVar3" (binary_expression "uVar16 + 4" identifier + number_literal) + identifier)) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);" do (compound_statement "{\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                }" { (expression_statement "uVar18 = FUN_00066f30(iVar14,4);" (assignment_expression "uVar18 = FUN_00066f30(iVar14,4)" identifier = (call_expression "FUN_00066f30(iVar14,4)" identifier (argument_list "(iVar14,4)" ( identifier , number_literal )))) ;) (expression_statement "uVar17 = uVar18 & 0xffffff;" (assignment_expression "uVar17 = uVar18 & 0xffffff" identifier = (binary_expression "uVar18 & 0xffffff" identifier & number_literal)) ;) (if_statement "if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" if (parenthesized_expression "(uVar17 < uVar8)" ( (binary_expression "uVar17 < uVar8" identifier < identifier) )) (compound_statement "{\n                    printf("%c%lu",uVar12,uVar17);\n                  }" { (expression_statement "printf("%c%lu",uVar12,uVar17);" (call_expression "printf("%c%lu",uVar12,uVar17)" identifier (argument_list "("%c%lu",uVar12,uVar17)" ( (string_literal ""%c%lu"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" else (compound_statement "{\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" { (expression_statement "printf("%cT%lu",uVar12,uVar17 - uVar8);" (call_expression "printf("%cT%lu",uVar12,uVar17 - uVar8)" identifier (argument_list "("%cT%lu",uVar12,uVar17 - uVar8)" ( (string_literal ""%cT%lu"" " string_content ") , identifier , (binary_expression "uVar17 - uVar8" identifier - identifier) ))) ;) }))) (expression_statement "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);" (assignment_expression "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" identifier = (call_expression "dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" identifier (argument_list "(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" ( number_literal , (pointer_expression "*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" * (cast_expression "(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" ( (binary_expression "&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4" (pointer_expression "&DAT_000b3480" & identifier) + (binary_expression "(uVar18 >> 0x1c & 7) * 4" (parenthesized_expression "(uVar18 >> 0x1c & 7)" ( (binary_expression "uVar18 >> 0x1c & 7" (binary_expression "uVar18 >> 0x1c" identifier >> number_literal) & number_literal) )) * number_literal)) )))) , number_literal )))) ;) (if_statement "if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" if (parenthesized_expression "((int)uVar18 < 0)" ( (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    uVar15 = dcgettext(0,"static",5);\n                  }" { (expression_statement "uVar15 = dcgettext(0,"static",5);" (assignment_expression "uVar15 = dcgettext(0,"static",5)" identifier = (call_expression "dcgettext(0,"static",5)" identifier (argument_list "(0,"static",5)" ( number_literal , (string_literal ""static"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" else (compound_statement "{\n                    uVar15 = dcgettext(0,"global",5);\n                  }" { (expression_statement "uVar15 = dcgettext(0,"global",5);" (assignment_expression "uVar15 = dcgettext(0,"global",5)" identifier = (call_expression "dcgettext(0,"global",5)" identifier (argument_list "(0,"global",5)" ( number_literal , (string_literal ""global"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf(" [%s, %s]",uVar15,uVar13);" (call_expression "printf(" [%s, %s]",uVar15,uVar13)" identifier (argument_list "(" [%s, %s]",uVar15,uVar13)" ( (string_literal "" [%s, %s]"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (uVar6 == 1) goto LAB_0004f748;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0004f748;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" identifier = (binary_expression "iVar14 + 4" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar16 < uVar6)" ( (binary_expression "uVar16 < uVar6" identifier < identifier) )) ;) (if_statement "if (1 < uVar6) goto LAB_0004f360;" if (parenthesized_expression "(1 < uVar6)" ( (binary_expression "1 < uVar6" number_literal < identifier) )) (goto_statement "goto LAB_0004f360;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004f748:\n              putchar(10);" statement_identifier : (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;)) }))) }))) })) (labeled_statement "LAB_0004f360:\n        uVar4 = uVar4 + 1;" statement_identifier : (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;)) (expression_statement "uVar16 = uVar5 + 8;" (assignment_expression "uVar16 = uVar5 + 8" identifier = (binary_expression "uVar5 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != uVar4)" ( (binary_expression "uVar9 != uVar4" identifier != identifier) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = "Corrupt header in the %s section.\n";" (assignment_expression "pcVar2 = "Corrupt header in the %s section.\n"" identifier = (string_literal ""Corrupt header in the %s section.\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar2,5)" identifier = (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "warn(uVar12,iVar1);" (call_expression "warn(uVar12,iVar1)" identifier (argument_list "(uVar12,iVar1)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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) )))) == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (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 ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) <= IDENT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) <= IDENT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) <= IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) <= IDENT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) <= IDENT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT >> LIT) , IDENT , (binary_expression (binary_expression IDENT + LIT) + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT / LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT - LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) )) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= (binary_expression IDENT + IDENT)) ))) )) (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 ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) )) - IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) )) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= (binary_expression IDENT + IDENT)) ))) )) (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 escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) < IDENT) )) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) <= IDENT) ))) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , (binary_expression IDENT - IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (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 IDENT >> LIT) & LIT) )) * LIT)) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) }))) }))) })) (labeled_statement 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) )) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0004ee60(int param_1)\n\n{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_0004ee60(int param_1)" (identifier "FUN_0004ee60") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  int iVar10;\n  int iVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  uint uVar17;\n  uint uVar18;\n  undefined8 uVar19;\n  \n  iVar14 = *(int *)(param_1 + 0x10);\n  FUN_0004eb80();\n  if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }\n  iVar1 = FUN_00066f30(iVar14,4);\n  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);\n  printf(pcVar2,iVar1);\n  if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }\n  if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }\n  uVar3 = FUN_00066f30(iVar14 + 4,4);\n  uVar4 = FUN_00066f30(iVar14 + 8,4);\n  uVar5 = FUN_00066f30(iVar14 + 0xc,4);\n  uVar6 = FUN_00066f30(iVar14 + 0x10,4);\n  uVar7 = FUN_00066f30(iVar14 + 0x14,4);\n  uVar16 = *(uint *)(param_1 + 0x20);\n  uVar9 = *(uint *)(param_1 + 0x1c);\n  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }\n  iVar1 = *(int *)(param_1 + 8);\n  pcVar2 = "Corrupt header in the %s section.\n";\nLAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);\n  warn(uVar12,iVar1);\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined8 uVar19;" (type_identifier "undefined8") (identifier "uVar19") (; ";")) (expression_statement "iVar14 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar14 = *(int *)(param_1 + 0x10)" (identifier "iVar14") (= "=") (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 "FUN_0004eb80();" (call_expression "FUN_0004eb80()" (identifier "FUN_0004eb80") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20))" (( "(") (binary_expression "*(int *)(param_1 + 0x20) == 0 &&\n      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (binary_expression "*(int *)(param_1 + 0x20) == 0" (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)" (call_expression "(uint)(0x17 < *(uint *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x17 < *(uint *)(param_1 + 0x1c))" (( "(") (binary_expression "0x17 < *(uint *)(param_1 + 0x1c)" (number_literal "0x17") (< "<") (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")) () ")"))))) () ")"))) (<= "<=") (binary_expression "(uint)-*(int *)(param_1 + 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))))) () ")")) (compound_statement "{\n    iVar1 = *(int *)(param_1 + 8);\n    pcVar2 = "Truncated header in the %s section.\n";\n    goto LAB_0004f46e;\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar2 = "Truncated header in the %s section.\n";" (assignment_expression "pcVar2 = "Truncated header in the %s section.\n"" (identifier "pcVar2") (= "=") (string_literal ""Truncated header in the %s section.\n"" (" """) (string_content "Truncated header in the %s section.") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004f46e;" (goto "goto") (statement_identifier "LAB_0004f46e") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00066f30(iVar14,4);" (assignment_expression "iVar1 = FUN_00066f30(iVar14,4)" (identifier "iVar1") (= "=") (call_expression "FUN_00066f30(iVar14,4)" (identifier "FUN_00066f30") (argument_list "(iVar14,4)" (( "(") (identifier "iVar14") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Version %ld\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"Version %ld\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Version %ld\n",5)" (identifier "dcgettext") (argument_list "(0,"Version %ld\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Version %ld\n"" (" """) (string_content "Version %ld") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2,iVar1);" (call_expression "printf(pcVar2,iVar1)" (identifier "printf") (argument_list "(pcVar2,iVar1)" (( "(") (identifier "pcVar2") (, ",") (identifier "iVar1") () ")"))) (; ";")) (if_statement "if (5 < iVar1 - 3U) {\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" (if "if") (parenthesized_expression "(5 < iVar1 - 3U)" (( "(") (binary_expression "5 < iVar1 - 3U" (number_literal "5") (< "<") (binary_expression "iVar1 - 3U" (identifier "iVar1") (- "-") (number_literal "3U"))) () ")")) (compound_statement "{\n    pcVar2 = "Unsupported version %lu.\n";\n    goto LAB_0004f46e;\n  }" ({ "{") (expression_statement "pcVar2 = "Unsupported version %lu.\n";" (assignment_expression "pcVar2 = "Unsupported version %lu.\n"" (identifier "pcVar2") (= "=") (string_literal ""Unsupported version %lu.\n"" (" """) (string_content "Unsupported version %lu.") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_0004f46e;" (goto "goto") (statement_identifier "LAB_0004f46e") (; ";")) (} "}"))) (if_statement "if (iVar1 == 3) {\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }\n  else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" (if "if") (parenthesized_expression "(iVar1 == 3)" (( "(") (binary_expression "iVar1 == 3" (identifier "iVar1") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);\n    warn(uVar12);\nLAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);\n    warn(uVar12);\nLAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);\n    warn(uVar12);\nLAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);\n    warn(uVar12);\n  }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"The address table data in version 3 may be wrong.\n",5)" (identifier "dcgettext") (argument_list "(0,"The address table data in version 3 may be wrong.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""The address table data in version 3 may be wrong.\n"" (" """) (string_content "The address table data in version 3 may be wrong.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (labeled_statement "LAB_0004f4be:\n    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" (statement_identifier "LAB_0004f4be") (: ":") (expression_statement "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5)" (identifier "dcgettext") (argument_list "(0,"Version 4 does not support case insensitive lookups.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Version 4 does not support case insensitive lookups.\n"" (" """) (string_content "Version 4 does not support case insensitive lookups.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (labeled_statement "LAB_0004f4dc:\n    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" (statement_identifier "LAB_0004f4dc") (: ":") (expression_statement "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Version 5 does not include inlined functions.\n",5)" (identifier "dcgettext") (argument_list "(0,"Version 5 does not include inlined functions.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Version 5 does not include inlined functions.\n"" (" """) (string_content "Version 5 does not include inlined functions.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (labeled_statement "LAB_0004f4fa:\n    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" (statement_identifier "LAB_0004f4fa") (: ":") (expression_statement "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Version 6 does not include symbol attributes.\n",5)" (identifier "dcgettext") (argument_list "(0,"Version 6 does not include symbol attributes.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Version 6 does not include symbol attributes.\n"" (" """) (string_content "Version 6 does not include symbol attributes.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" (else "else") (compound_statement "{\n    if (iVar1 == 4) goto LAB_0004f4be;\n    if (iVar1 == 5) goto LAB_0004f4dc;\n    if (iVar1 == 6) goto LAB_0004f4fa;\n  }" ({ "{") (if_statement "if (iVar1 == 4) goto LAB_0004f4be;" (if "if") (parenthesized_expression "(iVar1 == 4)" (( "(") (binary_expression "iVar1 == 4" (identifier "iVar1") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_0004f4be;" (goto "goto") (statement_identifier "LAB_0004f4be") (; ";"))) (if_statement "if (iVar1 == 5) goto LAB_0004f4dc;" (if "if") (parenthesized_expression "(iVar1 == 5)" (( "(") (binary_expression "iVar1 == 5" (identifier "iVar1") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_0004f4dc;" (goto "goto") (statement_identifier "LAB_0004f4dc") (; ";"))) (if_statement "if (iVar1 == 6) goto LAB_0004f4fa;" (if "if") (parenthesized_expression "(iVar1 == 6)" (( "(") (binary_expression "iVar1 == 6" (identifier "iVar1") (== "==") (number_literal "6")) () ")")) (goto_statement "goto LAB_0004f4fa;" (goto "goto") (statement_identifier "LAB_0004f4fa") (; ";"))) (} "}")))) (expression_statement "uVar3 = FUN_00066f30(iVar14 + 4,4);" (assignment_expression "uVar3 = FUN_00066f30(iVar14 + 4,4)" (identifier "uVar3") (= "=") (call_expression "FUN_00066f30(iVar14 + 4,4)" (identifier "FUN_00066f30") (argument_list "(iVar14 + 4,4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar4 = FUN_00066f30(iVar14 + 8,4);" (assignment_expression "uVar4 = FUN_00066f30(iVar14 + 8,4)" (identifier "uVar4") (= "=") (call_expression "FUN_00066f30(iVar14 + 8,4)" (identifier "FUN_00066f30") (argument_list "(iVar14 + 8,4)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar5 = FUN_00066f30(iVar14 + 0xc,4);" (assignment_expression "uVar5 = FUN_00066f30(iVar14 + 0xc,4)" (identifier "uVar5") (= "=") (call_expression "FUN_00066f30(iVar14 + 0xc,4)" (identifier "FUN_00066f30") (argument_list "(iVar14 + 0xc,4)" (( "(") (binary_expression "iVar14 + 0xc" (identifier "iVar14") (+ "+") (number_literal "0xc")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar6 = FUN_00066f30(iVar14 + 0x10,4);" (assignment_expression "uVar6 = FUN_00066f30(iVar14 + 0x10,4)" (identifier "uVar6") (= "=") (call_expression "FUN_00066f30(iVar14 + 0x10,4)" (identifier "FUN_00066f30") (argument_list "(iVar14 + 0x10,4)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar7 = FUN_00066f30(iVar14 + 0x14,4);" (assignment_expression "uVar7 = FUN_00066f30(iVar14 + 0x14,4)" (identifier "uVar7") (= "=") (call_expression "FUN_00066f30(iVar14 + 0x14,4)" (identifier "FUN_00066f30") (argument_list "(iVar14 + 0x14,4)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar16 = *(uint *)(param_1 + 0x20);" (assignment_expression "uVar16 = *(uint *)(param_1 + 0x20)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(param_1 + 0x20)" (* "*") (cast_expression "(uint *)(param_1 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar9 = *(uint *)(param_1 + 0x1c)" (identifier "uVar9") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))))" (( "(") (binary_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))\n     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" (parenthesized_expression "((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))" (( "(") (binary_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16)" (parenthesized_expression "(((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16))" (( "(") (binary_expression "((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)" (parenthesized_expression "((uVar9 < uVar3) <= uVar16)" (( "(") (binary_expression "(uVar9 < uVar3) <= uVar16" (parenthesized_expression "(uVar9 < uVar3)" (( "(") (binary_expression "uVar9 < uVar3" (identifier "uVar9") (< "<") (identifier "uVar3")) () ")")) (<= "<=") (identifier "uVar16")) () ")")) (&& "&&") (parenthesized_expression "((uVar9 < uVar4) <= uVar16)" (( "(") (binary_expression "(uVar9 < uVar4) <= uVar16" (parenthesized_expression "(uVar9 < uVar4)" (( "(") (binary_expression "uVar9 < uVar4" (identifier "uVar9") (< "<") (identifier "uVar4")) () ")")) (<= "<=") (identifier "uVar16")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar9 < uVar5) <= uVar16)" (( "(") (binary_expression "(uVar9 < uVar5) <= uVar16" (parenthesized_expression "(uVar9 < uVar5)" (( "(") (binary_expression "uVar9 < uVar5" (identifier "uVar9") (< "<") (identifier "uVar5")) () ")")) (<= "<=") (identifier "uVar16")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))" (( "(") (parenthesized_expression "((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16))" (( "(") (binary_expression "(uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)" (binary_expression "(uVar9 < uVar6) <= uVar16" (parenthesized_expression "(uVar9 < uVar6)" (( "(") (binary_expression "uVar9 < uVar6" (identifier "uVar9") (< "<") (identifier "uVar6")) () ")")) (<= "<=") (identifier "uVar16")) (&& "&&") (parenthesized_expression "((uVar9 < uVar7) <= uVar16)" (( "(") (binary_expression "(uVar9 < uVar7) <= uVar16" (parenthesized_expression "(uVar9 < uVar7)" (( "(") (binary_expression "uVar9 < uVar7" (identifier "uVar9") (< "<") (identifier "uVar7")) () ")")) (<= "<=") (identifier "uVar16")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }\n    if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }\n    if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }\n    if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }\n    uVar16 = uVar6 + iVar14;\n    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }\n    uVar8 = uVar4 - uVar3;\n    iVar1 = uVar3 + iVar14;\n    uVar9 = uVar8 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }\n    iVar1 = uVar4 + iVar14;\n    uVar9 = uVar5 - uVar4 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }\n    uVar9 = uVar6 - uVar5;\n    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }\n    uVar9 = uVar7 - uVar6 >> 3;\n    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);\n    printf(pcVar2);\n    if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (uVar4 < uVar3) {\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar4 < uVar3)" (( "(") (binary_expression "uVar4 < uVar3" (identifier "uVar4") (< "<") (identifier "uVar3")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);\n      warn(uVar12,uVar4,uVar3);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5)" (identifier "dcgettext") (argument_list "(0,"TU offset (%x) is less than CU offset (%x)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""TU offset (%x) is less than CU offset (%x)\n"" (" """) (string_content "TU offset (%x) is less than CU offset (%x)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar4,uVar3);" (call_expression "warn(uVar12,uVar4,uVar3)" (identifier "warn") (argument_list "(uVar12,uVar4,uVar3)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar4") (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar5 < uVar4) {\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);\n      warn(uVar12,uVar5,uVar4);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" (identifier "dcgettext") (argument_list "(0,"Address table offset (%x) is less than TU offset (%x)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Address table offset (%x) is less than TU offset (%x)\n"" (" """) (string_content "Address table offset (%x) is less than TU offset (%x)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar5,uVar4);" (call_expression "warn(uVar12,uVar5,uVar4)" (identifier "warn") (argument_list "(uVar12,uVar5,uVar4)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar6 < uVar5) {\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar6 < uVar5)" (( "(") (binary_expression "uVar6 < uVar5" (identifier "uVar6") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);\n      warn(uVar12,uVar6,uVar5);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" (identifier "dcgettext") (argument_list "(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Symbol table offset (%x) is less then Address table offset (%x)\n"" (" """) (string_content "Symbol table offset (%x) is less then Address table offset (%x)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar6,uVar5);" (call_expression "warn(uVar12,uVar6,uVar5)" (identifier "warn") (argument_list "(uVar12,uVar6,uVar5)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (uVar7 < uVar6) {\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar7 < uVar6)" (( "(") (binary_expression "uVar7 < uVar6" (identifier "uVar7") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);\n      warn(uVar12,uVar7,uVar6);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" (identifier "dcgettext") (argument_list "(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Constant pool offset (%x) is less than symbol table offset (%x)\n"" (" """) (string_content "Constant pool offset (%x) is less than symbol table offset (%x)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar7,uVar6);" (call_expression "warn(uVar12,uVar7,uVar6)" (identifier "warn") (argument_list "(uVar12,uVar7,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar7") (, ",") (identifier "uVar6") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar16 = uVar6 + iVar14;" (assignment_expression "uVar16 = uVar6 + iVar14" (identifier "uVar16") (= "=") (binary_expression "uVar6 + iVar14" (identifier "uVar6") (+ "+") (identifier "iVar14"))) (; ";")) (if_statement "if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" (if "if") (parenthesized_expression "(uVar9 + *(int *)(param_1 + 0x10) < uVar16)" (( "(") (binary_expression "uVar9 + *(int *)(param_1 + 0x10) < uVar16" (binary_expression "uVar9 + *(int *)(param_1 + 0x10)" (identifier "uVar9") (+ "+") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);\n      warn(uVar12);\n      return 0;\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Address table extends beyond end of section.\n",5)" (identifier "dcgettext") (argument_list "(0,"Address table extends beyond end of section.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Address table extends beyond end of section.\n"" (" """) (string_content "Address table extends beyond end of section.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12);" (call_expression "warn(uVar12)" (identifier "warn") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar8 = uVar4 - uVar3;" (assignment_expression "uVar8 = uVar4 - uVar3" (identifier "uVar8") (= "=") (binary_expression "uVar4 - uVar3" (identifier "uVar4") (- "-") (identifier "uVar3"))) (; ";")) (expression_statement "iVar1 = uVar3 + iVar14;" (assignment_expression "iVar1 = uVar3 + iVar14" (identifier "iVar1") (= "=") (binary_expression "uVar3 + iVar14" (identifier "uVar3") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "uVar9 = uVar8 >> 3;" (assignment_expression "uVar9 = uVar8 >> 3" (identifier "uVar9") (= "=") (binary_expression "uVar8 >> 3" (identifier "uVar8") (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"\nCU table:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nCU table:\n",5)" (identifier "dcgettext") (argument_list "(0,"\nCU table:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nCU table:\n"" (" """) (escape_sequence "\n") (string_content "CU table:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" (identifier "printf") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = 0;\n      do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);\n    }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      } while (uVar18 < uVar9);" (do "do") (compound_statement "{\n        iVar10 = FUN_00066f30(iVar1,8);\n        iVar11 = iVar1 + 8;\n        iVar1 = iVar1 + 0x10;\n        iVar11 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);\n        uVar18 = uVar3 + 2;\n        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);\n        uVar3 = uVar18;\n      }" ({ "{") (expression_statement "iVar10 = FUN_00066f30(iVar1,8);" (assignment_expression "iVar10 = FUN_00066f30(iVar1,8)" (identifier "iVar10") (= "=") (call_expression "FUN_00066f30(iVar1,8)" (identifier "FUN_00066f30") (argument_list "(iVar1,8)" (( "(") (identifier "iVar1") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "iVar11 = iVar1 + 8;" (assignment_expression "iVar11 = iVar1 + 8" (identifier "iVar11") (= "=") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar1 = iVar1 + 0x10;" (assignment_expression "iVar1 = iVar1 + 0x10" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "iVar11 = FUN_00066f30(iVar11,8);" (assignment_expression "iVar11 = FUN_00066f30(iVar11,8)" (identifier "iVar11") (= "=") (call_expression "FUN_00066f30(iVar11,8)" (identifier "FUN_00066f30") (argument_list "(iVar11,8)" (( "(") (identifier "iVar11") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5)" (identifier "dcgettext") (argument_list "(0,"[%3u] 0x%lx - 0x%lx\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""[%3u] 0x%lx - 0x%lx\n"" (" """) (string_content "[%3u] 0x%lx - 0x%lx") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar18 = uVar3 + 2;" (assignment_expression "uVar18 = uVar3 + 2" (identifier "uVar18") (= "=") (binary_expression "uVar3 + 2" (identifier "uVar3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);" (call_expression "printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" (identifier "printf") (argument_list "(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11)" (( "(") (identifier "pcVar2") (, ",") (binary_expression "uVar3 >> 1" (identifier "uVar3") (>> ">>") (number_literal "1")) (, ",") (identifier "iVar10") (, ",") (binary_expression "iVar10 + -1 + iVar11" (binary_expression "iVar10 + -1" (identifier "iVar10") (+ "+") (number_literal "-1")) (+ "+") (identifier "iVar11")) () ")"))) (; ";")) (expression_statement "uVar3 = uVar18;" (assignment_expression "uVar3 = uVar18" (identifier "uVar3") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 < uVar9)" (( "(") (binary_expression "uVar18 < uVar9" (identifier "uVar18") (< "<") (identifier "uVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar1 = uVar4 + iVar14;" (assignment_expression "iVar1 = uVar4 + iVar14" (identifier "iVar1") (= "=") (binary_expression "uVar4 + iVar14" (identifier "uVar4") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "uVar9 = uVar5 - uVar4 >> 3;" (assignment_expression "uVar9 = uVar5 - uVar4 >> 3" (identifier "uVar9") (= "=") (binary_expression "uVar5 - uVar4 >> 3" (binary_expression "uVar5 - uVar4" (identifier "uVar5") (- "-") (identifier "uVar4")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"\nTU table:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nTU table:\n",5)" (identifier "dcgettext") (argument_list "(0,"\nTU table:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nTU table:\n"" (" """) (escape_sequence "\n") (string_content "TU table:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" (identifier "printf") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (if_statement "if (uVar9 != 0) {\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = 0;\n      do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);\n    }" ({ "{") (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      } while (uVar4 < uVar9);" (do "do") (compound_statement "{\n        uVar12 = FUN_00066f30(iVar1,8);\n        uVar13 = FUN_00066f30(iVar1 + 8,8);\n        iVar11 = iVar1 + 0x10;\n        iVar1 = iVar1 + 0x18;\n        uVar19 = FUN_00066f30(iVar11,8);\n        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);\n        uVar4 = uVar3 + 3;\n        printf(pcVar2,uVar3 / 3,uVar12,uVar13);\n        FUN_0004ce60(uVar19);\n        putchar(10);\n        uVar3 = uVar4;\n      }" ({ "{") (expression_statement "uVar12 = FUN_00066f30(iVar1,8);" (assignment_expression "uVar12 = FUN_00066f30(iVar1,8)" (identifier "uVar12") (= "=") (call_expression "FUN_00066f30(iVar1,8)" (identifier "FUN_00066f30") (argument_list "(iVar1,8)" (( "(") (identifier "iVar1") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "uVar13 = FUN_00066f30(iVar1 + 8,8);" (assignment_expression "uVar13 = FUN_00066f30(iVar1 + 8,8)" (identifier "uVar13") (= "=") (call_expression "FUN_00066f30(iVar1 + 8,8)" (identifier "FUN_00066f30") (argument_list "(iVar1 + 8,8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "iVar11 = iVar1 + 0x10;" (assignment_expression "iVar11 = iVar1 + 0x10" (identifier "iVar11") (= "=") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "iVar1 = iVar1 + 0x18;" (assignment_expression "iVar1 = iVar1 + 0x18" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "uVar19 = FUN_00066f30(iVar11,8);" (assignment_expression "uVar19 = FUN_00066f30(iVar11,8)" (identifier "uVar19") (= "=") (call_expression "FUN_00066f30(iVar11,8)" (identifier "FUN_00066f30") (argument_list "(iVar11,8)" (( "(") (identifier "iVar11") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"[%3u] 0x%lx 0x%lx ",5)" (identifier "dcgettext") (argument_list "(0,"[%3u] 0x%lx 0x%lx ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""[%3u] 0x%lx 0x%lx "" (" """) (string_content "[%3u] 0x%lx 0x%lx ") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "uVar4 = uVar3 + 3;" (assignment_expression "uVar4 = uVar3 + 3" (identifier "uVar4") (= "=") (binary_expression "uVar3 + 3" (identifier "uVar3") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "printf(pcVar2,uVar3 / 3,uVar12,uVar13);" (call_expression "printf(pcVar2,uVar3 / 3,uVar12,uVar13)" (identifier "printf") (argument_list "(pcVar2,uVar3 / 3,uVar12,uVar13)" (( "(") (identifier "pcVar2") (, ",") (binary_expression "uVar3 / 3" (identifier "uVar3") (/ "/") (number_literal "3")) (, ",") (identifier "uVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "FUN_0004ce60(uVar19);" (call_expression "FUN_0004ce60(uVar19)" (identifier "FUN_0004ce60") (argument_list "(uVar19)" (( "(") (identifier "uVar19") () ")"))) (; ";")) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "uVar3 = uVar4;" (assignment_expression "uVar3 = uVar4" (identifier "uVar3") (= "=") (identifier "uVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 < uVar9)" (( "(") (binary_expression "uVar4 < uVar9" (identifier "uVar4") (< "<") (identifier "uVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar6 - uVar5;" (assignment_expression "uVar9 = uVar6 - uVar5" (identifier "uVar9") (= "=") (binary_expression "uVar6 - uVar5" (identifier "uVar6") (- "-") (identifier "uVar5"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"\nAddress table:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nAddress table:\n",5)" (identifier "dcgettext") (argument_list "(0,"\nAddress table:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nAddress table:\n"" (" """) (escape_sequence "\n") (string_content "Address table:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" (identifier "printf") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (if_statement "if (uVar9 != 0) {\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = iVar14 + 8 + uVar5;\n      uVar3 = 0;\n      do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);\n    }" ({ "{") (expression_statement "iVar1 = iVar14 + 8 + uVar5;" (assignment_expression "iVar1 = iVar14 + 8 + uVar5" (identifier "iVar1") (= "=") (binary_expression "iVar14 + 8 + uVar5" (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" (identifier "uVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      } while (uVar3 <= uVar9 - 0x14);" (do "do") (compound_statement "{\n        uVar3 = uVar3 + 0x14;\n        FUN_00066f30(iVar1 + -8,8);\n        FUN_00066f30(iVar1,8);\n        uVar12 = FUN_00066f30(iVar1 + 8,4);\n        FUN_0004ce60();\n        FUN_0004ce60();\n        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);\n        printf(pcVar2,uVar12);\n        if (uVar9 <= uVar3) break;\n        iVar1 = iVar1 + 0x14;\n      }" ({ "{") (expression_statement "uVar3 = uVar3 + 0x14;" (assignment_expression "uVar3 = uVar3 + 0x14" (identifier "uVar3") (= "=") (binary_expression "uVar3 + 0x14" (identifier "uVar3") (+ "+") (number_literal "0x14"))) (; ";")) (expression_statement "FUN_00066f30(iVar1 + -8,8);" (call_expression "FUN_00066f30(iVar1 + -8,8)" (identifier "FUN_00066f30") (argument_list "(iVar1 + -8,8)" (( "(") (binary_expression "iVar1 + -8" (identifier "iVar1") (+ "+") (number_literal "-8")) (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "FUN_00066f30(iVar1,8);" (call_expression "FUN_00066f30(iVar1,8)" (identifier "FUN_00066f30") (argument_list "(iVar1,8)" (( "(") (identifier "iVar1") (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "uVar12 = FUN_00066f30(iVar1 + 8,4);" (assignment_expression "uVar12 = FUN_00066f30(iVar1 + 8,4)" (identifier "uVar12") (= "=") (call_expression "FUN_00066f30(iVar1 + 8,4)" (identifier "FUN_00066f30") (argument_list "(iVar1 + 8,4)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" (identifier "FUN_0004ce60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004ce60();" (call_expression "FUN_0004ce60()" (identifier "FUN_0004ce60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,&DAT_0007c447,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,&DAT_0007c447,5)" (identifier "dcgettext") (argument_list "(0,&DAT_0007c447,5)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0007c447" (& "&") (identifier "DAT_0007c447")) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2,uVar12);" (call_expression "printf(pcVar2,uVar12)" (identifier "printf") (argument_list "(pcVar2,uVar12)" (( "(") (identifier "pcVar2") (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if (uVar9 <= uVar3) break;" (if "if") (parenthesized_expression "(uVar9 <= uVar3)" (( "(") (binary_expression "uVar9 <= uVar3" (identifier "uVar9") (<= "<=") (identifier "uVar3")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar1 = iVar1 + 0x14;" (assignment_expression "iVar1 = iVar1 + 0x14" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar3 <= uVar9 - 0x14)" (( "(") (binary_expression "uVar3 <= uVar9 - 0x14" (identifier "uVar3") (<= "<=") (binary_expression "uVar9 - 0x14" (identifier "uVar9") (- "-") (number_literal "0x14"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar9 = uVar7 - uVar6 >> 3;" (assignment_expression "uVar9 = uVar7 - uVar6 >> 3" (identifier "uVar9") (= "=") (binary_expression "uVar7 - uVar6 >> 3" (binary_expression "uVar7 - uVar6" (identifier "uVar7") (- "-") (identifier "uVar6")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"\nSymbol table:\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"\nSymbol table:\n",5)" (identifier "dcgettext") (argument_list "(0,"\nSymbol table:\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nSymbol table:\n"" (" """) (escape_sequence "\n") (string_content "Symbol table:") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2);" (call_expression "printf(pcVar2)" (identifier "printf") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (if_statement "if (uVar9 != 0) {\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar3 = iVar14 + uVar7;\n      uVar4 = 0;\n      uVar8 = uVar8 >> 4;\n      do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);\n    }" ({ "{") (expression_statement "uVar3 = iVar14 + uVar7;" (assignment_expression "uVar3 = iVar14 + uVar7" (identifier "uVar3") (= "=") (binary_expression "iVar14 + uVar7" (identifier "iVar14") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar8 >> 4;" (assignment_expression "uVar8 = uVar8 >> 4" (identifier "uVar8") (= "=") (binary_expression "uVar8 >> 4" (identifier "uVar8") (>> ">>") (number_literal "4"))) (; ";")) (do_statement "do {\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      } while (uVar9 != uVar4);" (do "do") (compound_statement "{\n        uVar5 = uVar16;\n        uVar6 = FUN_00066f30(uVar16,4);\n        uVar16 = FUN_00066f30(uVar16 + 4,4);\n        if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }\nLAB_0004f360:\n        uVar4 = uVar4 + 1;\n        uVar16 = uVar5 + 8;\n      }" ({ "{") (expression_statement "uVar5 = uVar16;" (assignment_expression "uVar5 = uVar16" (identifier "uVar5") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "uVar6 = FUN_00066f30(uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar16,4)" (identifier "uVar6") (= "=") (call_expression "FUN_00066f30(uVar16,4)" (identifier "FUN_00066f30") (argument_list "(uVar16,4)" (( "(") (identifier "uVar16") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar16 = FUN_00066f30(uVar16 + 4,4);" (assignment_expression "uVar16 = FUN_00066f30(uVar16 + 4,4)" (identifier "uVar16") (= "=") (call_expression "FUN_00066f30(uVar16 + 4,4)" (identifier "FUN_00066f30") (argument_list "(uVar16 + 4,4)" (( "(") (binary_expression "uVar16 + 4" (identifier "uVar16") (+ "+") (number_literal "4")) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (uVar6 != 0 || uVar16 != 0) {\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" (if "if") (parenthesized_expression "(uVar6 != 0 || uVar16 != 0)" (( "(") (binary_expression "uVar6 != 0 || uVar16 != 0" (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }\n          if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }\n        }" ({ "{") (if_statement "if ((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }\n          else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" (if "if") (parenthesized_expression "((CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6))" (( "(") (binary_expression "(CARRY4(uVar3,uVar6)) ||\n             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" (parenthesized_expression "(CARRY4(uVar3,uVar6))" (( "(") (call_expression "CARRY4(uVar3,uVar6)" (identifier "CARRY4") (argument_list "(uVar3,uVar6)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar6") () ")"))) () ")")) (|| "||") (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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")) () ")")))) (+ "+") (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")) () ")"))))) () ")"))) (<= "<=") (binary_expression "uVar3 + uVar6" (identifier "uVar3") (+ "+") (identifier "uVar6"))) () ")"))) () ")")) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);\n            printf(pcVar2,uVar4,uVar6);\n            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);\n            uVar18 = uVar4;\n            warn(uVar12,uVar6,uVar4);\n          }" ({ "{") (expression_statement "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"[%3u] <corrupt offset: %x>",5)" (identifier "dcgettext") (argument_list "(0,"[%3u] <corrupt offset: %x>",5)" (( "(") (number_literal "0") (, ",") (string_literal ""[%3u] <corrupt offset: %x>"" (" """) (string_content "[%3u] <corrupt offset: %x>") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2,uVar4,uVar6);" (call_expression "printf(pcVar2,uVar4,uVar6)" (identifier "printf") (argument_list "(pcVar2,uVar4,uVar6)" (( "(") (identifier "pcVar2") (, ",") (identifier "uVar4") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" (identifier "dcgettext") (argument_list "(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Corrupt name offset of 0x%x found for symbol table slot %d\n"" (" """) (string_content "Corrupt name offset of 0x%x found for symbol table slot %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar18 = uVar4;" (assignment_expression "uVar18 = uVar4" (identifier "uVar18") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" (identifier "warn") (argument_list "(uVar12,uVar6,uVar4)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" (else "else") (compound_statement "{\n            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;\n            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);\n          }" ({ "{") (expression_statement "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;" (assignment_expression "uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6" (identifier "uVar18") (= "=") (binary_expression "(*(int *)(param_1 + 0x1c) - uVar7) - uVar6" (parenthesized_expression "(*(int *)(param_1 + 0x1c) - uVar7)" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) - uVar7" (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")) () ")")))) (- "-") (identifier "uVar7")) () ")")) (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);" (call_expression "printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" (identifier "printf") (argument_list "("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6)" (( "(") (string_literal ""[%3u] %.*s:"" (" """) (string_content "[%3u] %.*s:") (" """)) (, ",") (identifier "uVar4") (, ",") (identifier "uVar18") (, ",") (binary_expression "uVar3 + uVar6" (identifier "uVar3") (+ "+") (identifier "uVar6")) () ")"))) (; ";")) (} "}")))) (if_statement "if ((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }\n          else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" (if "if") (parenthesized_expression "((CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16))" (( "(") (binary_expression "(CARRY4(uVar3,uVar16)) ||\n             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" (parenthesized_expression "(CARRY4(uVar3,uVar16))" (( "(") (call_expression "CARRY4(uVar3,uVar16)" (identifier "CARRY4") (argument_list "(uVar3,uVar16)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar16") () ")"))) () ")")) (|| "||") (parenthesized_expression "((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16" (call_expression "(uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c))" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)" (binary_expression "*(int *)(param_1 + 0x10) + -3" (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")) () ")")))) (+ "+") (number_literal "-3")) (+ "+") (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")) () ")"))))) () ")"))) (<= "<=") (binary_expression "uVar3 + uVar16" (identifier "uVar3") (+ "+") (identifier "uVar16"))) () ")"))) () ")")) (compound_statement "{\n            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);\n            printf(pcVar2,uVar16);\n            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);\n            warn(uVar12,uVar16,uVar4);\n          }" ({ "{") (expression_statement "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" (identifier "pcVar2") (= "=") (cast_expression "(char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<invalid CU vector offset: %x>\n",5)" (identifier "dcgettext") (argument_list "(0,"<invalid CU vector offset: %x>\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<invalid CU vector offset: %x>\n"" (" """) (string_content "<invalid CU vector offset: %x>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar2,uVar16);" (call_expression "printf(pcVar2,uVar16)" (identifier "printf") (argument_list "(pcVar2,uVar16)" (( "(") (identifier "pcVar2") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5);" (assignment_expression "uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" (identifier "dcgettext") (argument_list "(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"\n                               ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"" (" """) (string_content "Corrupt CU vector offset of 0x%x found for symbol table slot %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar16,uVar4);" (call_expression "warn(uVar12,uVar16,uVar4)" (identifier "warn") (argument_list "(uVar12,uVar16,uVar4)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar16") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" (else "else") (compound_statement "{\n            uVar6 = FUN_00066f30(uVar3 + uVar16,4);\n            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;\n            if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }\n          }" ({ "{") (expression_statement "uVar6 = FUN_00066f30(uVar3 + uVar16,4);" (assignment_expression "uVar6 = FUN_00066f30(uVar3 + uVar16,4)" (identifier "uVar6") (= "=") (call_expression "FUN_00066f30(uVar3 + uVar16,4)" (identifier "FUN_00066f30") (argument_list "(uVar3 + uVar16,4)" (( "(") (binary_expression "uVar3 + uVar16" (identifier "uVar3") (+ "+") (identifier "uVar16")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;" (assignment_expression "uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3" (identifier "uVar17") (= "=") (binary_expression "uVar6 * 4 + uVar16 + 4 + uVar3" (binary_expression "uVar6 * 4 + uVar16 + 4" (binary_expression "uVar6 * 4 + uVar16" (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4")) (+ "+") (identifier "uVar16")) (+ "+") (number_literal "4")) (+ "+") (identifier "uVar3"))) (; ";")) (if_statement "if (((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)) {\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }\n            else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" (if "if") (parenthesized_expression "(((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3))" (( "(") (binary_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||\n               (uVar17 < uVar3)" (parenthesized_expression "((uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17))" (( "(") (binary_expression "(uVar6 * 4 < uVar6) ||\n                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" (parenthesized_expression "(uVar6 * 4 < uVar6)" (( "(") (binary_expression "uVar6 * 4 < uVar6" (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4")) (< "<") (identifier "uVar6")) () ")")) (|| "||") (parenthesized_expression "((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)" (( "(") (binary_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17" (call_expression "(uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10))" (( "(") (binary_expression "*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)" (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")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) () ")"))) (<= "<=") (identifier "uVar17")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar17 < uVar3)" (( "(") (binary_expression "uVar17 < uVar3" (identifier "uVar17") (< "<") (identifier "uVar3")) () ")"))) () ")")) (compound_statement "{\n              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);\n              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);\n              warn(uVar12,uVar6,uVar4);\n            }" ({ "{") (expression_statement "printf("<invalid number of CUs: %d>\n",uVar6,uVar18);" (call_expression "printf("<invalid number of CUs: %d>\n",uVar6,uVar18)" (identifier "printf") (argument_list "("<invalid number of CUs: %d>\n",uVar6,uVar18)" (( "(") (string_literal ""<invalid number of CUs: %d>\n"" (" """) (string_content "<invalid number of CUs: %d>") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar6") (, ",") (identifier "uVar18") () ")"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);" (assignment_expression "uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" (identifier "dcgettext") (argument_list "(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Invalid number of CUs (0x%x) for symbol table slot %d\n"" (" """) (string_content "Invalid number of CUs (0x%x) for symbol table slot %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "warn(uVar12,uVar6,uVar4);" (call_expression "warn(uVar12,uVar6,uVar4)" (identifier "warn") (argument_list "(uVar12,uVar6,uVar4)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" (else "else") (compound_statement "{\n              if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }\nLAB_0004f748:\n              putchar(10);\n            }" ({ "{") (if_statement "if (uVar6 < 2) {\n                if (uVar6 != 0) goto LAB_0004f664;\n              }\n              else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" (if "if") (parenthesized_expression "(uVar6 < 2)" (( "(") (binary_expression "uVar6 < 2" (identifier "uVar6") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                if (uVar6 != 0) goto LAB_0004f664;\n              }" ({ "{") (if_statement "if (uVar6 != 0) goto LAB_0004f664;" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004f664;" (goto "goto") (statement_identifier "LAB_0004f664") (; ";"))) (} "}")) (else_clause "else {\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" (else "else") (compound_statement "{\n                putchar(10);\nLAB_0004f664:\n                uVar12 = 0x20;\n                if (uVar6 != 1) {\n                  uVar12 = 9;\n                }\n                iVar14 = uVar16 + 4 + uVar3;\n                uVar16 = 0;\n                do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);\n                if (1 < uVar6) goto LAB_0004f360;\n              }" ({ "{") (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (labeled_statement "LAB_0004f664:\n                uVar12 = 0x20;" (statement_identifier "LAB_0004f664") (: ":") (expression_statement "uVar12 = 0x20;" (assignment_expression "uVar12 = 0x20" (identifier "uVar12") (= "=") (number_literal "0x20")) (; ";"))) (if_statement "if (uVar6 != 1) {\n                  uVar12 = 9;\n                }" (if "if") (parenthesized_expression "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                  uVar12 = 9;\n                }" ({ "{") (expression_statement "uVar12 = 9;" (assignment_expression "uVar12 = 9" (identifier "uVar12") (= "=") (number_literal "9")) (; ";")) (} "}"))) (expression_statement "iVar14 = uVar16 + 4 + uVar3;" (assignment_expression "iVar14 = uVar16 + 4 + uVar3" (identifier "iVar14") (= "=") (binary_expression "uVar16 + 4 + uVar3" (binary_expression "uVar16 + 4" (identifier "uVar16") (+ "+") (number_literal "4")) (+ "+") (identifier "uVar3"))) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                } while (uVar16 < uVar6);" (do "do") (compound_statement "{\n                  uVar18 = FUN_00066f30(iVar14,4);\n                  uVar17 = uVar18 & 0xffffff;\n                  if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }\n                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);\n                  if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }\n                  printf(" [%s, %s]",uVar15,uVar13);\n                  if (uVar6 == 1) goto LAB_0004f748;\n                  uVar16 = uVar16 + 1;\n                  iVar14 = iVar14 + 4;\n                  putchar(10);\n                }" ({ "{") (expression_statement "uVar18 = FUN_00066f30(iVar14,4);" (assignment_expression "uVar18 = FUN_00066f30(iVar14,4)" (identifier "uVar18") (= "=") (call_expression "FUN_00066f30(iVar14,4)" (identifier "FUN_00066f30") (argument_list "(iVar14,4)" (( "(") (identifier "iVar14") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "uVar17 = uVar18 & 0xffffff;" (assignment_expression "uVar17 = uVar18 & 0xffffff" (identifier "uVar17") (= "=") (binary_expression "uVar18 & 0xffffff" (identifier "uVar18") (& "&") (number_literal "0xffffff"))) (; ";")) (if_statement "if (uVar17 < uVar8) {\n                    printf("%c%lu",uVar12,uVar17);\n                  }\n                  else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" (if "if") (parenthesized_expression "(uVar17 < uVar8)" (( "(") (binary_expression "uVar17 < uVar8" (identifier "uVar17") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n                    printf("%c%lu",uVar12,uVar17);\n                  }" ({ "{") (expression_statement "printf("%c%lu",uVar12,uVar17);" (call_expression "printf("%c%lu",uVar12,uVar17)" (identifier "printf") (argument_list "("%c%lu",uVar12,uVar17)" (( "(") (string_literal ""%c%lu"" (" """) (string_content "%c%lu") (" """)) (, ",") (identifier "uVar12") (, ",") (identifier "uVar17") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" (else "else") (compound_statement "{\n                    printf("%cT%lu",uVar12,uVar17 - uVar8);\n                  }" ({ "{") (expression_statement "printf("%cT%lu",uVar12,uVar17 - uVar8);" (call_expression "printf("%cT%lu",uVar12,uVar17 - uVar8)" (identifier "printf") (argument_list "("%cT%lu",uVar12,uVar17 - uVar8)" (( "(") (string_literal ""%cT%lu"" (" """) (string_content "%cT%lu") (" """)) (, ",") (identifier "uVar12") (, ",") (binary_expression "uVar17 - uVar8" (identifier "uVar17") (- "-") (identifier "uVar8")) () ")"))) (; ";")) (} "}")))) (expression_statement "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);" (assignment_expression "uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" (identifier "dcgettext") (argument_list "(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5)" (( "(") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" (* "*") (cast_expression "(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4)" (( "(") (binary_expression "&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4" (pointer_expression "&DAT_000b3480" (& "&") (identifier "DAT_000b3480")) (+ "+") (binary_expression "(uVar18 >> 0x1c & 7) * 4" (parenthesized_expression "(uVar18 >> 0x1c & 7)" (( "(") (binary_expression "uVar18 >> 0x1c & 7" (binary_expression "uVar18 >> 0x1c" (identifier "uVar18") (>> ">>") (number_literal "0x1c")) (& "&") (number_literal "7")) () ")")) (* "*") (number_literal "4"))) () ")")))) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if ((int)uVar18 < 0) {\n                    uVar15 = dcgettext(0,"static",5);\n                  }\n                  else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" (if "if") (parenthesized_expression "((int)uVar18 < 0)" (( "(") (binary_expression "(int)uVar18 < 0" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    uVar15 = dcgettext(0,"static",5);\n                  }" ({ "{") (expression_statement "uVar15 = dcgettext(0,"static",5);" (assignment_expression "uVar15 = dcgettext(0,"static",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"static",5)" (identifier "dcgettext") (argument_list "(0,"static",5)" (( "(") (number_literal "0") (, ",") (string_literal ""static"" (" """) (string_content "static") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    uVar15 = dcgettext(0,"global",5);\n                  }" (else "else") (compound_statement "{\n                    uVar15 = dcgettext(0,"global",5);\n                  }" ({ "{") (expression_statement "uVar15 = dcgettext(0,"global",5);" (assignment_expression "uVar15 = dcgettext(0,"global",5)" (identifier "uVar15") (= "=") (call_expression "dcgettext(0,"global",5)" (identifier "dcgettext") (argument_list "(0,"global",5)" (( "(") (number_literal "0") (, ",") (string_literal ""global"" (" """) (string_content "global") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "printf(" [%s, %s]",uVar15,uVar13);" (call_expression "printf(" [%s, %s]",uVar15,uVar13)" (identifier "printf") (argument_list "(" [%s, %s]",uVar15,uVar13)" (( "(") (string_literal "" [%s, %s]"" (" """) (string_content " [%s, %s]") (" """)) (, ",") (identifier "uVar15") (, ",") (identifier "uVar13") () ")"))) (; ";")) (if_statement "if (uVar6 == 1) goto LAB_0004f748;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0004f748;" (goto "goto") (statement_identifier "LAB_0004f748") (; ";"))) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar14 = iVar14 + 4;" (assignment_expression "iVar14 = iVar14 + 4" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 < uVar6)" (( "(") (binary_expression "uVar16 < uVar6" (identifier "uVar16") (< "<") (identifier "uVar6")) () ")")) (; ";")) (if_statement "if (1 < uVar6) goto LAB_0004f360;" (if "if") (parenthesized_expression "(1 < uVar6)" (( "(") (binary_expression "1 < uVar6" (number_literal "1") (< "<") (identifier "uVar6")) () ")")) (goto_statement "goto LAB_0004f360;" (goto "goto") (statement_identifier "LAB_0004f360") (; ";"))) (} "}")))) (labeled_statement "LAB_0004f748:\n              putchar(10);" (statement_identifier "LAB_0004f748") (: ":") (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";"))) (} "}")))) (} "}")))) (} "}"))) (labeled_statement "LAB_0004f360:\n        uVar4 = uVar4 + 1;" (statement_identifier "LAB_0004f360") (: ":") (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar16 = uVar5 + 8;" (assignment_expression "uVar16 = uVar5 + 8" (identifier "uVar16") (= "=") (binary_expression "uVar5 + 8" (identifier "uVar5") (+ "+") (number_literal "8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != uVar4)" (( "(") (binary_expression "uVar9 != uVar4" (identifier "uVar9") (!= "!=") (identifier "uVar4")) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 8);" (assignment_expression "iVar1 = *(int *)(param_1 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar2 = "Corrupt header in the %s section.\n";" (assignment_expression "pcVar2 = "Corrupt header in the %s section.\n"" (identifier "pcVar2") (= "=") (string_literal ""Corrupt header in the %s section.\n"" (" """) (string_content "Corrupt header in the %s section.") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_0004f46e:\n  uVar12 = dcgettext(0,pcVar2,5);" (statement_identifier "LAB_0004f46e") (: ":") (expression_statement "uVar12 = dcgettext(0,pcVar2,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar2,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "warn(uVar12,iVar1);" (call_expression "warn(uVar12,iVar1)" (identifier "warn") (argument_list "(uVar12,iVar1)" (( "(") (identifier "uVar12") (, ",") (identifier "iVar1") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

int function_1(type_1 *section,void *file)

{
  int *piVar1;
  char *var_5;
  char *pcVar3;
  type_2 var_10;
  type_2 var_15;
  type_2 var_11;
  type_2 var_12;
  type_3 uVar8;
  type_3 uVar9;
  type_1 *in_ECX;
  type_4 *var_16;
  type_2 var_9;
  type_4 *var_7;
  type_2 var_13;
  type_2 var_14;
  type_4 *var_17;
  type_2 var_18;
  type_5 var_8;
  type_5 eVar18;
  type_5 value;
  type_4 *puVar19;
  type_3 uVar20;
  int var_19;
  type_6 uVar22;
  type_2 local_54;
  
  var_7 = section->start;
  var_1((type_1 *)section->name,(bfd_boolean)&section->filename,in_ECX);
  piVar1 = (int *)((int)&section->size + 4);
  if (*piVar1 == 0 && (type_2)(0x17 < (type_2)section->size) <= (type_2)-*piVar1) {
    var_5 = section->name;
    pcVar3 = "Truncated header in the %s section.\n";
    goto LAB_0004f46e;
  }
  var_8 = var_2(var_7,4);
  var_5 = (char *)var_8;
  pcVar3 = (char *)var_3(0,"Version %ld\n",5);
  var_4(pcVar3,var_5);
  if ((char *)0x5 < var_5 + -3) {
    pcVar3 = "Unsupported version %lu.\n";
    goto LAB_0004f46e;
  }
  if (var_5 == (char *)0x3) {
    pcVar3 = (char *)var_3(0,"The address table data in version 3 may be wrong.\n",5);
    var_6(pcVar3);
LAB_0004f4be:
    pcVar3 = (char *)var_3(0,"Version 4 does not support case insensitive lookups.\n",5);
    var_6(pcVar3);
LAB_0004f4dc:
    pcVar3 = (char *)var_3(0,"Version 5 does not include inlined functions.\n",5);
    var_6(pcVar3);
LAB_0004f4fa:
    pcVar3 = (char *)var_3(0,"Version 6 does not include symbol attributes.\n",5);
    var_6(pcVar3);
  }
  else {
    if (var_5 == (char *)0x4) goto LAB_0004f4be;
    if (var_5 == (char *)0x5) goto LAB_0004f4dc;
    if (var_5 == (char *)0x6) goto LAB_0004f4fa;
  }
  var_8 = var_2(var_7 + 4,4);
  var_10 = (type_2)var_8;
  var_8 = var_2(var_7 + 8,4);
  uVar22 = var_8 & 0xffffffff;
  var_8 = var_2(var_7 + 0xc,4);
  var_13 = (type_2)var_8;
  var_8 = var_2(var_7 + 0x10,4);
  var_14 = (type_2)var_8;
  var_8 = var_2(var_7 + 0x14,4);
  var_12 = (type_2)uVar22;
  var_15 = (type_2)var_8;
  var_11 = *(type_2 *)((int)&section->size + 4);
  var_9 = (type_2)section->size;
  if (((((var_9 < var_10) <= var_11) && ((var_9 < var_12) <= var_11)) && ((var_9 < var_13) <= var_11))
     && (((var_9 < var_14) <= var_11 && ((var_9 < var_15) <= var_11)))) {
    if (var_12 < var_10) {
      pcVar3 = (char *)var_3(0,"TU offset (%x) is less than CU offset (%x)\n",5);
      var_6(pcVar3,var_12,var_10);
      return 0;
    }
    if (var_13 < var_12) {
      pcVar3 = (char *)var_3(0,"Address table offset (%x) is less than TU offset (%x)\n",5);
      var_6(pcVar3,var_13,var_12);
      return 0;
    }
    if (var_14 < var_13) {
      pcVar3 = (char *)var_3(0,
                                 "Symbol table offset (%x) is less then Address table offset (%x)\n"
                                 ,5);
      var_6(pcVar3,var_14,var_13);
      return 0;
    }
    if (var_15 < var_14) {
      pcVar3 = (char *)var_3(0,
                                 "Constant pool offset (%x) is less than symbol table offset (%x)\n"
                                 ,5);
      var_6(pcVar3,var_15,var_14);
      return 0;
    }
    var_16 = var_7 + var_14;
    if (section->start + var_9 < var_16) {
      pcVar3 = (char *)var_3(0,"Address table extends beyond end of section.\n",5);
      var_6(pcVar3);
      return 0;
    }
    var_17 = var_7 + var_10;
    var_11 = var_12 - var_10 >> 3;
    pcVar3 = (char *)var_3(0,"\nCU table:\n",5);
    var_4(pcVar3);
    var_19 = (int)uVar22;
    if (var_11 != 0) {
      var_9 = 0;
      do {
        var_8 = var_2(var_17,8);
        puVar19 = var_17 + 8;
        var_17 = var_17 + 0x10;
        eVar18 = var_2(puVar19,8);
        pcVar3 = (char *)var_3(0,"[%3u] 0x%lx - 0x%lx\n",5);
        var_18 = var_9 + 2;
        var_4(pcVar3,var_9 >> 1,(int)var_8,(int)var_8 + -1 + (int)eVar18);
        var_19 = (int)uVar22;
        var_9 = var_18;
      } while (var_18 < var_11);
    }
    var_17 = var_7 + var_19;
    var_11 = var_13 - var_19 >> 3;
    pcVar3 = (char *)var_3(0,"\nTU table:\n",5);
    var_4(pcVar3);
    if (var_11 != 0) {
      var_9 = 0;
      do {
        var_8 = var_2(var_17,8);
        eVar18 = var_2(var_17 + 8,8);
        puVar19 = var_17 + 0x10;
        var_17 = var_17 + 0x18;
        value = var_2(puVar19,8);
        pcVar3 = (char *)var_3(0,"[%3u] 0x%lx 0x%lx ",5);
        var_18 = var_9 + 3;
        var_4(pcVar3,var_9 / 3,(int)var_8,(int)eVar18);
        var_20(value,(type_2)value);
        var_21(10);
        var_9 = var_18;
      } while (var_18 < var_11);
    }
    var_11 = var_14 - var_13;
    pcVar3 = (char *)var_3(0,"\nAddress table:\n",5);
    var_4(pcVar3);
    if (var_11 != 0) {
      var_17 = var_7 + var_13 + 8;
      var_9 = 0;
      do {
        var_9 = var_9 + 0x14;
        var_8 = var_2(var_17 + -8,8);
        var_13 = (type_2)var_8;
        var_8 = var_2(var_17,8);
        puVar19 = var_17 + 8;
        uVar20 = 4;
        eVar18 = var_2(puVar19,4);
        var_20(var_22(uVar20,puVar19),var_13);
        local_54 = (type_2)var_8;
        var_20(var_22(uVar20,puVar19),local_54);
        pcVar3 = (char *)var_3(0,&DAT_0007c447,5);
        var_4(pcVar3,(int)eVar18);
        if (var_11 <= var_9) break;
        var_17 = var_17 + 0x14;
      } while (var_9 <= var_11 - 0x14);
    }
    var_11 = var_15 - var_14 >> 3;
    pcVar3 = (char *)var_3(0,"\nSymbol table:\n",5);
    var_4(pcVar3);
    if (var_11 != 0) {
      var_7 = var_7 + var_15;
      var_13 = 0;
      var_9 = var_12 - var_10 >> 4;
      do {
        uVar22 = var_23(var_16);
        var_8 = var_2(var_16,4);
        var_10 = (type_2)var_8;
        var_8 = var_2(var_16 + 4,4);
        var_19 = (int)uVar22;
        var_14 = (type_2)var_8;
        if (var_10 != 0 || var_14 != 0) {
          if ((var_24((type_2)var_7,var_10)) ||
             (var_19 = (int)section->size, section->start + var_19 <= var_7 + var_10)) {
            pcVar3 = (char *)var_3(0,"[%3u] <corrupt offset: %x>",5);
            var_4(pcVar3,var_13,var_10);
            pcVar3 = (char *)var_3(0,
                                       "Corrupt name offset of 0x%x found for symbol table slot %d\n"
                                       ,5);
            var_12 = var_13;
            var_6(pcVar3,var_10,var_13);
          }
          else {
            var_12 = (var_19 - var_15) - var_10;
            var_4("[%3u] %.*s:",var_13,var_12,var_7 + var_10);
          }
          var_19 = (int)uVar22;
          if ((var_24((type_2)var_7,var_14)) ||
             (section->start + (int)section->size + -3 <= var_7 + var_14)) {
            pcVar3 = (char *)var_3(0,"<invalid CU vector offset: %x>\n",5);
            var_4(pcVar3,var_14);
            pcVar3 = (char *)var_3(0,
                                       "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
                                       ,5);
            var_6(pcVar3,var_14,var_13);
          }
          else {
            var_8 = var_2(var_7 + var_14,4);
            var_19 = (int)uVar22;
            var_10 = (type_2)var_8;
            if (((var_10 * 4 < var_10) ||
                (section->start + (int)section->size <= var_7 + var_10 * 4 + var_14 + 4)) ||
               (var_7 + var_10 * 4 + var_14 + 4 < var_7)) {
              var_4("<invalid number of CUs: %d>\n",var_10,var_12);
              pcVar3 = (char *)var_3(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n"
                                         ,5);
              var_6(pcVar3,var_10,var_13);
            }
            else {
              if (var_10 < 2) {
                if (var_10 != 0) goto LAB_0004f664;
              }
              else {
                var_21(10);
LAB_0004f664:
                uVar20 = 0x20;
                if (var_10 != 1) {
                  uVar20 = 9;
                }
                var_16 = var_7 + var_14 + 4;
                var_14 = 0;
                do {
                  var_8 = var_2(var_16,4);
                  var_12 = (type_2)var_8;
                  var_18 = var_12 & 0xffffff;
                  if (var_18 < var_9) {
                    var_4("%c%lu",uVar20,var_18);
                  }
                  else {
                    var_4("%cT%lu",uVar20,var_18 - var_9);
                  }
                  uVar8 = var_3(0,*(type_3 *)(var_25 + (var_12 >> 0x1c & 7) * 4),5);
                  if ((int)var_12 < 0) {
                    uVar9 = var_3(0,"static",5);
                  }
                  else {
                    uVar9 = var_3(0,"global",5);
                  }
                  var_4(" [%s, %s]",uVar9,uVar8);
                  var_19 = (int)uVar22;
                  if (var_10 == 1) goto LAB_0004f748;
                  var_14 = var_14 + 1;
                  var_16 = var_16 + 4;
                  var_21(10);
                  var_19 = (int)uVar22;
                } while (var_14 < var_10);
                if (1 < var_10) goto LAB_0004f360;
              }
LAB_0004f748:
              var_21(10);
            }
          }
        }
LAB_0004f360:
        var_13 = var_13 + 1;
        var_16 = (type_4 *)(var_19 + 8);
      } while (var_11 != var_13);
    }
    return 1;
  }
  var_5 = section->name;
  pcVar3 = "Corrupt header in the %s section.\n";
LAB_0004f46e:
  pcVar3 = (char *)var_3(0,pcVar3,5);
  var_6(pcVar3,var_5);
  return 0;
}


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

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

undefined4 MASKED(int param_1)

{
  int iVar1;
  char *pcVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  int iVar10;
  int iVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  int iVar14;
  undefined4 uVar15;
  uint uVar16;
  uint uVar17;
  uint uVar18;
  undefined8 uVar19;
  
  iVar14 = *(int *)(param_1 + 0x10);
  FUN_0004eb80();
  if (*(int *)(param_1 + 0x20) == 0 &&
      (uint)(0x17 < *(uint *)(param_1 + 0x1c)) <= (uint)-*(int *)(param_1 + 0x20)) {
    iVar1 = *(int *)(param_1 + 8);
    pcVar2 = "Truncated header in the %s section.\n";
    goto LAB_0004f46e;
  }
  iVar1 = FUN_00066f30(iVar14,4);
  pcVar2 = (char *)dcgettext(0,"Version %ld\n",5);
  printf(pcVar2,iVar1);
  if (5 < iVar1 - 3U) {
    pcVar2 = "Unsupported version %lu.\n";
    goto LAB_0004f46e;
  }
  if (iVar1 == 3) {
    uVar12 = dcgettext(0,"The address table data in version 3 may be wrong.\n",5);
    warn(uVar12);
LAB_0004f4be:
    uVar12 = dcgettext(0,"Version 4 does not support case insensitive lookups.\n",5);
    warn(uVar12);
LAB_0004f4dc:
    uVar12 = dcgettext(0,"Version 5 does not include inlined functions.\n",5);
    warn(uVar12);
LAB_0004f4fa:
    uVar12 = dcgettext(0,"Version 6 does not include symbol attributes.\n",5);
    warn(uVar12);
  }
  else {
    if (iVar1 == 4) goto LAB_0004f4be;
    if (iVar1 == 5) goto LAB_0004f4dc;
    if (iVar1 == 6) goto LAB_0004f4fa;
  }
  uVar3 = FUN_00066f30(iVar14 + 4,4);
  uVar4 = FUN_00066f30(iVar14 + 8,4);
  uVar5 = FUN_00066f30(iVar14 + 0xc,4);
  uVar6 = FUN_00066f30(iVar14 + 0x10,4);
  uVar7 = FUN_00066f30(iVar14 + 0x14,4);
  uVar16 = *(uint *)(param_1 + 0x20);
  uVar9 = *(uint *)(param_1 + 0x1c);
  if (((((uVar9 < uVar3) <= uVar16) && ((uVar9 < uVar4) <= uVar16)) && ((uVar9 < uVar5) <= uVar16))
     && (((uVar9 < uVar6) <= uVar16 && ((uVar9 < uVar7) <= uVar16)))) {
    if (uVar4 < uVar3) {
      uVar12 = dcgettext(0,"TU offset (%x) is less than CU offset (%x)\n",5);
      warn(uVar12,uVar4,uVar3);
      return 0;
    }
    if (uVar5 < uVar4) {
      uVar12 = dcgettext(0,"Address table offset (%x) is less than TU offset (%x)\n",5);
      warn(uVar12,uVar5,uVar4);
      return 0;
    }
    if (uVar6 < uVar5) {
      uVar12 = dcgettext(0,"Symbol table offset (%x) is less then Address table offset (%x)\n",5);
      warn(uVar12,uVar6,uVar5);
      return 0;
    }
    if (uVar7 < uVar6) {
      uVar12 = dcgettext(0,"Constant pool offset (%x) is less than symbol table offset (%x)\n",5);
      warn(uVar12,uVar7,uVar6);
      return 0;
    }
    uVar16 = uVar6 + iVar14;
    if (uVar9 + *(int *)(param_1 + 0x10) < uVar16) {
      uVar12 = dcgettext(0,"Address table extends beyond end of section.\n",5);
      warn(uVar12);
      return 0;
    }
    uVar8 = uVar4 - uVar3;
    iVar1 = uVar3 + iVar14;
    uVar9 = uVar8 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nCU table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = 0;
      do {
        iVar10 = FUN_00066f30(iVar1,8);
        iVar11 = iVar1 + 8;
        iVar1 = iVar1 + 0x10;
        iVar11 = FUN_00066f30(iVar11,8);
        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx - 0x%lx\n",5);
        uVar18 = uVar3 + 2;
        printf(pcVar2,uVar3 >> 1,iVar10,iVar10 + -1 + iVar11);
        uVar3 = uVar18;
      } while (uVar18 < uVar9);
    }
    iVar1 = uVar4 + iVar14;
    uVar9 = uVar5 - uVar4 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nTU table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = 0;
      do {
        uVar12 = FUN_00066f30(iVar1,8);
        uVar13 = FUN_00066f30(iVar1 + 8,8);
        iVar11 = iVar1 + 0x10;
        iVar1 = iVar1 + 0x18;
        uVar19 = FUN_00066f30(iVar11,8);
        pcVar2 = (char *)dcgettext(0,"[%3u] 0x%lx 0x%lx ",5);
        uVar4 = uVar3 + 3;
        printf(pcVar2,uVar3 / 3,uVar12,uVar13);
        FUN_0004ce60(uVar19);
        putchar(10);
        uVar3 = uVar4;
      } while (uVar4 < uVar9);
    }
    uVar9 = uVar6 - uVar5;
    pcVar2 = (char *)dcgettext(0,"\nAddress table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      iVar1 = iVar14 + 8 + uVar5;
      uVar3 = 0;
      do {
        uVar3 = uVar3 + 0x14;
        FUN_00066f30(iVar1 + -8,8);
        FUN_00066f30(iVar1,8);
        uVar12 = FUN_00066f30(iVar1 + 8,4);
        FUN_0004ce60();
        FUN_0004ce60();
        pcVar2 = (char *)dcgettext(0,&DAT_0007c447,5);
        printf(pcVar2,uVar12);
        if (uVar9 <= uVar3) break;
        iVar1 = iVar1 + 0x14;
      } while (uVar3 <= uVar9 - 0x14);
    }
    uVar9 = uVar7 - uVar6 >> 3;
    pcVar2 = (char *)dcgettext(0,"\nSymbol table:\n",5);
    printf(pcVar2);
    if (uVar9 != 0) {
      uVar3 = iVar14 + uVar7;
      uVar4 = 0;
      uVar8 = uVar8 >> 4;
      do {
        uVar5 = uVar16;
        uVar6 = FUN_00066f30(uVar16,4);
        uVar16 = FUN_00066f30(uVar16 + 4,4);
        if (uVar6 != 0 || uVar16 != 0) {
          if ((CARRY4(uVar3,uVar6)) ||
             ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar3 + uVar6)) {
            pcVar2 = (char *)dcgettext(0,"[%3u] <corrupt offset: %x>",5);
            printf(pcVar2,uVar4,uVar6);
            uVar12 = dcgettext(0,"Corrupt name offset of 0x%x found for symbol table slot %d\n",5);
            uVar18 = uVar4;
            warn(uVar12,uVar6,uVar4);
          }
          else {
            uVar18 = (*(int *)(param_1 + 0x1c) - uVar7) - uVar6;
            printf("[%3u] %.*s:",uVar4,uVar18,uVar3 + uVar6);
          }
          if ((CARRY4(uVar3,uVar16)) ||
             ((uint)(*(int *)(param_1 + 0x10) + -3 + *(int *)(param_1 + 0x1c)) <= uVar3 + uVar16)) {
            pcVar2 = (char *)dcgettext(0,"<invalid CU vector offset: %x>\n",5);
            printf(pcVar2,uVar16);
            uVar12 = dcgettext(0,"Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
                               ,5);
            warn(uVar12,uVar16,uVar4);
          }
          else {
            uVar6 = FUN_00066f30(uVar3 + uVar16,4);
            uVar17 = uVar6 * 4 + uVar16 + 4 + uVar3;
            if (((uVar6 * 4 < uVar6) ||
                ((uint)(*(int *)(param_1 + 0x1c) + *(int *)(param_1 + 0x10)) <= uVar17)) ||
               (uVar17 < uVar3)) {
              printf("<invalid number of CUs: %d>\n",uVar6,uVar18);
              uVar12 = dcgettext(0,"Invalid number of CUs (0x%x) for symbol table slot %d\n",5);
              warn(uVar12,uVar6,uVar4);
            }
            else {
              if (uVar6 < 2) {
                if (uVar6 != 0) goto LAB_0004f664;
              }
              else {
                putchar(10);
LAB_0004f664:
                uVar12 = 0x20;
                if (uVar6 != 1) {
                  uVar12 = 9;
                }
                iVar14 = uVar16 + 4 + uVar3;
                uVar16 = 0;
                do {
                  uVar18 = FUN_00066f30(iVar14,4);
                  uVar17 = uVar18 & 0xffffff;
                  if (uVar17 < uVar8) {
                    printf("%c%lu",uVar12,uVar17);
                  }
                  else {
                    printf("%cT%lu",uVar12,uVar17 - uVar8);
                  }
                  uVar13 = dcgettext(0,*(undefined4 *)(&DAT_000b3480 + (uVar18 >> 0x1c & 7) * 4),5);
                  if ((int)uVar18 < 0) {
                    uVar15 = dcgettext(0,"static",5);
                  }
                  else {
                    uVar15 = dcgettext(0,"global",5);
                  }
                  printf(" [%s, %s]",uVar15,uVar13);
                  if (uVar6 == 1) goto LAB_0004f748;
                  uVar16 = uVar16 + 1;
                  iVar14 = iVar14 + 4;
                  putchar(10);
                } while (uVar16 < uVar6);
                if (1 < uVar6) goto LAB_0004f360;
              }
LAB_0004f748:
              putchar(10);
            }
          }
        }
LAB_0004f360:
        uVar4 = uVar4 + 1;
        uVar16 = uVar5 + 8;
      } while (uVar9 != uVar4);
    }
    return 1;
  }
  iVar1 = *(int *)(param_1 + 8);
  pcVar2 = "Corrupt header in the %s section.\n";
LAB_0004f46e:
  uVar12 = dcgettext(0,pcVar2,5);
  warn(uVar12,iVar1);
  return 0;
}

